shell脚本编写技巧

转自 http://bbs.51cto.com/archiver/?tid-5305.html
shell脚本编写技巧


1.test测试命令
test命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试,
其测试符和相应的功能分别如下:
(1)数值测试:
-eq:等于则为真
-ne:不等于则为真
-gt:大于则为真
-ge:大于等于则为真
-lt:小于则为真
-le:小于等于则为真
(2)字符串测试:
=:等于则为真
!=:不相等则为真
-z 字符串:字符串长度伪则为真
-n 字符串:字符串长度不伪则为真
(3)文件测试:
-e 文件名:如果文件存在则为真
-r 文件名:如果文件存在且可读则为真
-w 文件名:如果文件存在且可写则为真
-x 文件名:如果文件存在且可执行则为真
-s 文件名:如果文件存在且至少有一个字符则为真
-d 文件名:如果文件存在且为目录则为真
-f 文件名:如果文件存在且为普通文件则为真
-c 文件名:如果文件存在且为字符型特殊文件则为真
-b 文件名:如果文件存在且为块特殊文件则为真
另外,Linux还提供了与(“!”)、或(“-o)、非(“-a”)三个逻辑操作符用于将测试条件连接起来,
其优先级为:“!”最高,“-a”次之,“-o”最低。
同时,bash也能完成简单的算术运算,格式如下:
$[expression]
例如:var1=2
var2=$[var1*10+1]
则:var2的值为21。

2.if条件语句
if [ -x /sbin/quotaon ]; then
echo "Turning on Quota for root filesystem"
/sbin/quotaon /
elif [ -x /sbin/quotaon ]; then
/usr/bin/bash
else
echo "ok"
fi

3.for 循环
#!/bin/sh
WORD="a b c d e f g h i j l m n o p q r s t u v w x y z"
for i in $WORD ; do
echo $i
done

#!/bin/sh
FILES=`ls /txt/*.txt`
for txt in $FILES ; do
doc=`echo $txt | sed "s/.txt/.doc/"`
mv $txt $doc
done

4.while和until 循环
#!/bin/sh
while [ -f /var/run/ppp0.pid ] ; do
killall pppd
done

#!/bin/sh
until [ -f /var/run/ppp0.pid ] ; do
sleep 1
done

Shell还提供了true和false两条命令用于建立无限循环结构的需要,
它们的返回?
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
编写shell脚本时,以下是一些技巧可以帮助提高效率和可维护性: 1. 注释:在脚本中添加注释,解释代码的目的和功能,以便其他人(包括自己)能够轻松理解和修改代码。 2. 变量使用:使用变量存储重复使用的值,提高代码的可读性和可维护性。确保变量名具有描述性,并使用大写字母命名全局变量。 3. 错误处理:在脚本中添加适当的错误处理机制,例如检查命令是否成功执行,如果失败则采取相应的措施。 4. 参数处理:通过使用命令行参数,可以使脚本更具灵活性。使用$1、$2等特殊变量来获取传递给脚本的参数。 5. 流程控制:使用条件语句(if、elif、else)和循环(for、while)来控制脚本的执行流程。 6. 函数封装:将相关的代码块封装成函数,提高代码的可重用性和可读性。 7. 文件处理:使用文件处理命令(如grep、sed、awk)来处理文本文件,以便快速搜索、替换和提取所需的信息。 8. 调试技巧:在脚本中添加调试输出,以便跟踪代码的执行过程。可以使用echo命令输出变量值或调试信息。 9. 代码格式化:保持一致的代码风格,使用缩进和空格来增加代码的可读性。 10. 定期备份代码:将脚本文件进行版本控制,使用工具如Git等,以便回溯和比较不同版本的代码。 这些技巧可以帮助您编写更高效、可读性更好的shell脚本。不过,具体的编写方式还需根据具体需求和个人喜好进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值