你希望在脚本中根据情况执行不同的命令。这该怎么实现呢?
解决方案
该问题有很多种解决方案,这正是脚本的用武之地。后续章节会讨论可以搞定此问题的各种编程构件,如 if/then/else、case 语句等。但这里要给出一种略有不同的方法,它揭示了 bash 自身的一些东西。我们不仅可以将变量内容用于参数,还可以用于命令本身。
FN=/tmp/x.x
PROG=echo
$PROG $FN
PROG=cat
$PROG $FN
讨论
我们可以将命令名保存在变量($PROG
)中,然后在需要命令名的地方引用该变量,bash 会使用变量($PROG
)的值作为要执行的命令。bash 解析命令行,用相应的值替换其中的变量,最后将替换后的结果作为最终命令,就像是我们一字不差地敲入那样。
注意你所使用的变量名。有些程序(如 InfoZip)使用环境变量(如 $ZIP
和 $UNZIP
)向自身传递设置,如果你做了类似 ZIP=/usr/bin/zip
的操作,少不了要抓耳挠腮上几天,搞不明白为什么该程序可以在命令行上正常运行,偏偏在脚本中就不行了。相信我们,这都是从惨痛教训中总结出的经验。另外,好好读读手册。
酷客网相关文章:
评论前必须登录!
注册