输出结果:
实例2:输入数字选择输出
输出结果:
(3)循环结构的
3.1 for循环
格式:
(格式1)for var in word1 word2 ……
Do
command
command
……
done
谈到循环,就不得不说$@变量,它代表该shell脚本的所有参数。所以,要写一个命令行中键入的所有参数的程序就应该向下面这样:
(格式2)for arg in "$@"
do
echo $arg
done
(格式3)简单的写法,变量i在每次迭代的过程里都会保存一个字符,范围从a到z:
for i in {a..z}; do actions; done;
(格式4)for 循环也可以采用C语言中的for循环格式。例如:
for ((变量=初始值; 条件判断; 变量变化))
do
语句
Done
实例1:for var in 结构
输出结果
实例2:
PS:$* 所有参数列表。如"$*"用「"」括起来的情况、以"$1… $n"的形式输出所有参数。
$@所有参数列表。如"$@"用「"」括起来的情况、以"$1" … "$n" 的形式输出所有参数。
输出结果:
实例3:
运行结果:
实例4:
3.2 while/until循环
Until: 直到条件相同的时候才离开程序
While:当条件相同的时候,就继续做
PS:() 、(())以及 []的区别
单小括号 ():a命令组、b命令替换、c用于初始化数组,如:array=(a b c d)
双小括号 (( )):a整数扩展
b只要括号中的运算符、表达式符合C语言运算规则,都可用在$((exp))中
c单纯用也可重定义变量值,比如 a=5; ((a++)) 可将 $a 重定义为6
d常用于算术运算比较,双括号中的变量可以不使用$符号前缀
单中括号 []: A)bash 的内部命令,[和test是等同的。
B)test和[]中可用的比较运算符只有==和!=,两者都是用于字符串比较的,
不可用于整数比较,整数比较只能使用-eq,-gt这种形式。
C)字符范围。
D)在一个array 结构的上下文中,中括号用来引用数组中每个元素的编号。
实例1: #注释的语句,实现结果和当前的输出结果一样
实例2:
PS:
由于本人也是初学,也只是做了一些简单的联系,想要搞懂shell脚本 还需要更多深入联系
最后附上我所有联系的源代码: