shell脚本第四部分
函数function功能
![](https://i-blog.csdnimg.cn/blog_migrate/288d7dc203a953ea27087e882e0bc264.jpeg)
实操
vi sh11.sh
#!/bin/bash
function printinfo()
{
echo "you choice is"
}
case $1 in
"one")
printinfo; echo $1 | tr -s 'a-z' 'A-Z'
;;
"two")
printinfo; echo $1 | tr -s 'a-z' 'A-Z'
;;
esac
sh -n sh11.sh 检查脚本是否有语法错误,若无则不返回错误信息
sh -x sh11.sh one 以跟踪方式执行脚本,显示每一条命令
sh sh11.sh one
注:
-n 检查语句是否有语法错误
-x 进入跟踪方式,显示所执行的每一条命令,前面有+的表示执行过的程序语句
-v 输出脚本的内容
vi sh11-2.sh
#!/bin/sh
function printinfo()
{
echo "your choice is $1,$2"
}
case $1 in
"one")
printinfo "the first one" "successful"
;;
"two")
printinfo "the second one""successful"
;;
esac
sh -x sh11-2.sh one
sh -vx sh11-2.sh one 输出脚本的内容并进入跟踪方式显示所执行的每一条命令
循环控制
![](https://i-blog.csdnimg.cn/blog_migrate/48218a46ff4fe42e185a8965c1588c2d.jpeg)
实操:使用while和until循环语句分别等到用户输入y/Y
vi sh12.sh
#!/bin/bash
#Program:when user input y/Y,then stop while
#History: 2020-04-07 jack v1.0
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
while [ "$yn" != "y" -a "$yn" != "Y" ]
do
read -p "please input y/Y to stop while: " yn
done
sh -x sh12.sh
实操:使用until循环语句
vi sh12-2.sh
#!/bin/bash
#Program:wait user input y/Y to stop until
#History:2009-9-24 jack v1.0.2
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
until [ "$yn" = "y" -o "$yn" = "Y" ]
do
read -p "Please input y/Y to stop until: " yn
done
sh -x sh12-2.sh