什么是命令行参数(从shell命令行读取参数)
该脚本通过美元符号$读取命令行中的参数,例如[3]表示程序名,表示之一个参数,表示第二个参数,表示第十个参数,依此类推。建立脚本test34.sh,如下所示:
#/bin/bash
总计=$[ * + ]
echo ” * + = $total “
按如下方式运行:
。/test34.sh 4 5 6
结果如下:
4 * 5 + 6 = 26
在shell脚本中输入字符串时,注意使用空作为分隔符。如果字符串本身有空,请使用双引号或单引号,例如
#/bin/bash
echo“$ 1挺好的!”
按如下方式运行:
。/test35.sh《武林外传》
结果如下:
武林外传挺好看的!
[18]是程序名称。该程序名是运行时输入的完整路径,而不是文件名,如下所示:
#/bin/bash
回显“外壳路径为[20]”
运行输入:
bash shell/test36.sh
结果如下:
shell路径是shell/test36.sh
如果只想截取文件名,可以使用basename命令,该命令将返回不带前面路径的程序名,例如脚本test37.sh
#/bin/bash
外壳名称=$(基本名称[27])
回显“外壳路径是$shellName”
运行输入:
bash shell/test37.sh
结果如下:
shell路径是test37.sh
通过basename指令,我们可以通过脚本名来处理相应的逻辑,比如构建一个shell脚本,然后创建两个不同名称的链接,让这两个链接处理不同的逻辑。建立脚本test38.sh,如下所示:
#/bin/bash
名称=$(基本名称[35])
if[$ name = ” add “];然后
资源=$[ + ]
elif[$ name = ” mul “];然后
资源=$[ * ]
船方不负担装货费用
echo “[41] ->结果是$res “
然后,创建两个链接文件:
ln -s test38.sh添加
ln -s test38.sh mul
输入:
。/add 4 4
运行结果是:
。/add ->结果是8
输入:
。/mul 5 6
运行结果是:
。/mul ->结果是30