zsh 基本变量 条件和循环

本文介绍了ZSH shell的基本变量用法,包括如何使用变量,详细解析了条件判断中的迷惑点,并且详细阐述了如何在ZSH中进行分支和循环控制,帮助读者深入理解ZSH的控制流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原文链接: zsh 基本变量 条件和循环

上一篇: webpack import wasm

下一篇: CSSStyleDeclaration  保存dom元素的style

基础变量的使用

#!/bin/zsh

echo "hello zsh"        # hello zsh

# 赋值时不能加空格
num1=123
num2=321
# 直接相加视为字符串
sum1=$num1+$num2
echo sum1 $sum1         # sum1 123+321
sum2=$((sum1))         
echo sum2 $sum2         # sum2 444
sum3=$(($num1+$num2))   
echo sum3 $sum3         # sum3 444
sum4=$((num1+num2))
echo sum4 $sum4         # sum4 444

# 单引号中的不能引入变量
str1='456$num1'
# 双引号可以引入变量
str2="456$num1"
echo $str1 $str2        # 456$num1 456123

# 字符串的起始是由1开始的!!!!
str3=$str1[2,4]
echo str3 $str3         # str3 56$
# -1表示最后一个
str4=$str1[2,-1]        
echo str4 $str4         # str4 56$num1

迷惑的比较

#!/bin/zsh

num=123

# 比较成功返回0, 否则返回1
# && 在前面语句为真实才执行
(( $num==123 )) && echo "hello"
(( $num==123 )) || echo "hello2"
(( $num==1234 )) && echo "world"
(( $num==1234 )) || echo "zsh"
(( $num==1234 || $num>100 )) && echo "good"
(( $num==1234 || $num>100 )) || echo "good2"


str="hello"
# 和数字有点不一样, 比价失败不会执行后面的语句
[[ $str=="hello" ]] && echo "hello"
[[ $str=="hello" ]] || echo "hello2"
[[ $str=="world" ]] && echo "world"
[[ $str=="world" || $str=="hello" ]] && echo "zsh"


# hello
# zsh
# good
# hello
# world
# zsh

分支和循环

在比较的双括号中使用变量可以不加$

#!/bin/zsh

# 经典循环
for ((i=0;i<3;i++)) {
    echo $i  # 0 1 2
}

# 类似range的循环
for i ({1..3}) {
    echo $i # 1 2 3
}

# 重复执行几次
repeat 3 {
    echo 'hello'
}

num=5
while (($num>0)) {
    echo "while" $num
    num=$((num-1))
    if (( num%2 )) {
        echo $num "偶数"
    } else {
        echo $num "奇数"
    }
}


# 0
# 1
# 2
# 1
# 2
# 3
# hello
# hello
# hello
# while 5
# 4 奇数
# while 4
# 3 偶数
# while 3
# 2 奇数
# while 2
# 1 偶数
# while 1
# 0 奇数

用户输入

#!/bin/zsh

# 让用户进行选择, 使用数字加回车
# 如果不break会一直循环让用户选择
# select name ("a" "b" "c") {
#     echo "name" $name
# }


select num ({1..10}){
    echo $num
    break
}

if (( $num>5 )) {
    echo $num "大于5"
} elif (( $num>3 )) {
    echo $num "大于3"
} else {
    echo $num "小于等于3"
}

up-32c035121201afdfc3d44997c9b5853f549.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值