Bash Shell脚本中使用参数

你希望用户能在调用脚本时指定参数。可以要求用户设置一个 shell 变量,但这种做法似乎不够灵活。另外还需要向其他脚本传递数据。这可以通过环境变量实现,但会使两个脚本之间的联系过于紧密。

解决方案

使用命令行参数。在命令行上,出现在脚本名之后的任意单词都可以在脚本中作为编号变量(numbered variable)被访问。假设有下列脚本 simplest.sh。

# 一个简单的shell脚本
echo $1

该脚本会显示在命令行上被调用时所指定的第一个参数。我们来看一种实际用法。

$ cat simplest.sh
# 一个简单的shell脚本
echo ${1}
$ ./simplest.sh you see what I mean
you
$ ./simplest.sh one more time
one
$

讨论

其他参数的可用形式分别为 {2}、{3}、{4}、{5} 等。单个数位的数字用不着花括号,除非要区分变量名与其后出现的文本。典型的脚本只用到少部分参数,但如果涉及 ${10},那就得使用花括号了,否则 shell 会将 $10 理解为 ${1} 后面紧跟着字符串 0,如下所示。

$ cat tricky.sh
echo $1 $10 ${10}
$ ./tricky.sh I II III IV V VI VII VIII IX X XI
I I0 X
$

第 10 个参数的值是 X,但如果在脚本中写成 $10,那么你在 echo 语句中得到的会是第一个参数 $1,后面紧跟着一个字符串 0。

酷客网相关文章:

赞(0)

评论 抢沙发

评论前必须登录!