原文链接: 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"
}