shell脚本

使用引号:如果想在一个参数中包含一个或多个空白符,就必须给参数加上引号。
$foo变量在引号中的行为取决于使用的引号类型。如果把一个带有$字符的变量放在双引号中,程序执行到这一行就会把变量替换成它的值;如果放在单引号中,就不会替换,还可以在$字符前面取消它的特殊含义。

把程序的内容保存后,要chmod +x filename 命令设置为可执行。

脚本检查文件是否存在:test -f <filename>

例如:

if test -f filename.c
then 
...
fi

set-uid位是把程序拥有者的访问权限而不是用户的访问权限分配给程序,而set-gid位把程序所在组的访问权限分配给程序。这两个特殊位都是通过chmod命令的选项s和g设置的。set-gid和set-uid标志对shell脚本程序不起作用。

(1)判断:

echo "Is morning right now? Please answer yes or no."
read timeofday
if [ $timeofday = "yes" ]
then
    echo "good morning"
elif [ $timeofday = "no" ]
then
    echo "good afternoon"
else
    echo "time of day was not recognized,please enter yes or no"
    exit 1
fi

exit 0

以上测试中,如果两次测试的结果都不成功,就打印一条出错信息并以1为退出码来结束程序,调用者可以在调用程序中利用这个退出码来检查脚本是否执行成功。

为了避免空变量不是一个合法的输入,要给变量都加上引号。

如:if [ "$timeofday"="yes' ]

这样,用户直接按下enter也ok.

(2)循环:

使用for循环来处理一组值,语法:

for variable in values 
do 
    statements
done

例如:

for foo in bar fud 43
do 
    echo $foo
done 
exit 0
(3)while循环

while condition do
    statements
done

例如:

echo "Please input the password"
read trythis

while [ "$trythis" != "secret" ]; do
    echo "sorry, try again"
    read trythis
done
exit 0

(4)until语句:

unitl condition 
do 
    statements
done

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值