for
1.for循环
for var(方法) in list
do
commands
done
例:#!/bin/bash
for test in 1 2 3 4 5
do
echo The next number is $test
done
运行结果:
The next number is 1
The next number is 2
The next number is 3
The next number is 4
The next number is 5
每次for命令遍历值列表,它都会将列表中的下个值赋给$test变量
2.从变量读取列表
#!/bin/bash
list=“xian beijing shanghai”
list=$list" wuhan"
for city in $list
do
echo “have you ever visited $city?”
done
运行结果:
have you ever visited xian?
have you ever visited beijing?
have you ever visited shanghai?
have you ever visited wuhan?
赋值语句向$list变量包含的已有列表中添加(或者说拼接)了一个值
3.从命令中读取值
#!/bin/bash
file=“city”
for city in $(cat $file)
do
echo “visit $city”
done
运行结果:
visit shanghai
visit xian
这里要注意city文件存在
4.字符串处理
#!/bin/bash
for test in “i don’t konw how to use the for command”
do
echo “word:$test”
done
运行结果:
word:i don’t konw how to use the for command
使用双引号来处理
5.从通配符读取目录
#!/bin/bash
for file in /*
do
if [ -d “$file” ]
then
echo " $file is a directory"
elif [ -f " $file" ]
then
echo " $file is a file"
fi
done
运行结果:
/app is a directory
/bin is a directory
/boot is a directory
/dev is a directory
/etc is a directory
echo/file1 is a file
/home is a directory
··························
6.C语言风格
#!/bin/bash
for (( i=0; i<10; i++ ))
do
echo “The number is $i”
done
运行结果:
The number is 0
The number is 1
The number is 2
The number is 3
The number is 4
The number is 5
The number is 6
The number is 7
The number is 8
The number is 9
while
1 #!/bin/bash
var=10
while [ $var -gt 0 ]
do
echo $var
var= $[ $var - 1 ]
done
运行结果:
10
9
8
7
6
5
4
3
2
1
2 #!/bin/bash
n=70
while [ $n -gt 50 ]
do
if [
(
(
((
((n%2)) -eq 0 ]
then
echo “偶数:$n”
fi
n= $(( $n-1))
done
运行结果:
偶数:70
偶数:68
偶数:66
偶数:64
偶数:62
偶数:60
偶数:58
偶数:56
偶数:54
偶数:52
只要测试条件成立,while命令就会不停地循环执行定义好的命令
until
var=100
until [ $var -eq 0 ]
do
echo $var
var= $[ $var - 25 ]
done
运行结果:
100
75
50
25
until命令和while命令工作的方式完全相反,条件成立时结束。