zsh 基本变量 条件和循环

原创
08/21 22:21
阅读数 212

基础变量的使用

#!/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"
}

展开阅读全文
zsh
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部