while语句
#! /bin/bash
# while.sh
while [ $1 ]
do
if [ -f $1 ];then
echo -e "\ndisplay:$1"
cat $1
else
echo "$1 is not a file name."
fi
shift
done
- 这个程序对各个给定的位置参数,首先判断其是否为普通文件,若是,则显示其内容,否则,显示它不是文件的信息,每次循环处理一个位置参数$1,利用shift明林两个把后续位置参数左移。
until语句
for语句
- for语句主要有两种使用方式:一种是值表方式,另一种是算术表达式方式
- 值表方式:
- 格式:
-
for 变量 [in 值表]
do
命令表
done
# or
for 变量 [in 值表]; do 命令表; done
-
#! /bin/bash
# for.sh
for day in Monday Wednesday Friday Sunday
do
echo $day
done
-
#! /bin/bash
# for_test.sh
week={Mon Tue Wed}
for i in "${week[@]}"; do echo $i; done
#! /bin/bash
for 变量 in 文件正则表达式
do
命令表
done
# 比如
for file in *.sh; do wc -w $file; done
break,continue,exit
- break:退出循环体
- continue:跳过本次循环在continue后面的语句,回到本层循环的开始,进行下一次循环
exit命令
- exit命令的功能式立即退出,并设定退出状态(返回值)
- 格式:exit [n]
- 为显式给出n的话,则退出状态为最后一个命令的执行状态
select语句
- select语句通常用于菜单的设计,它自动完成 接收用户输入的整个过程,包括显示一组菜单项以及读取用户的选择
- 格式:
-
select identifier [in word...]
do
命令表
done
- 如果省略in word,那么参数identifier以位置参数作为给定的值
-
#! /bin/bash
# select.sh
PS3="Choice? "
select choice in query add delete update exit
do
case "$choice" in
query) echo "Call query routine"; break;;
add) echo "Call add routine"; break;;
delete) echo "Call delete routine"; break;;
update) echo "Call update routine"; break;;
exit) echo "Call exit routine"; break;;
esac
done
echo "you input $REPLY; your choice is: $choice"
echo "bye"
- PS1:命令行提示符,PS2:命令内提示符,PS3:用于select;REPLY是环境变量,将用户输入的值赋值给REPLY