什么是命令行参数(读取shell命令行中的参数)

shell脚本通过美元符号$读取命令行中的参数,比如$0表示程序名$1表示第一个参数$2表示第二个参数${10}表示表示第10个参数,以此类推。建立脚本test34.sh如下:

/bin/bash

total=$[ $1 * $2 + $3 ]

echo "$1 * $2 + $3 = $total"

运行如下:

./test34.sh 4 5 6

结果如下:

4 * 5 + 6 = 26

当把字符串输入给shell脚本的时候,注意是以空格作为分隔符,如果字符串本身就有空格的话,那么用双引号或者单引号,比如

/bin/bash

echo "$1 is pretty nice!"

运行如下:

./test35.sh "wu lin wai zhuan"

结果如下:

wu lin wai zhuan is pretty nice!

$0是程序名,这个程序名是运行时输入的完整路径,而不是文件名,比如下面的:

/bin/bash

echo "shell path is $0"

运行输入:

bash shell/test36.sh

结果如下:

shell path is shell/test36.sh

如果想要只截取出文件名的话可以使用basename命令,这个命令会返回不包含前面路径的程序名,如脚本test37.sh

/bin/bash

shellName=$(basename $0)

echo "shell path is $shellName"

运行输入:

bash shell/test37.sh

结果如下:

shell path is test37.sh

通过basename指令,我们可以通过脚本名来处理相应的逻辑,比如建立一个shell脚本,然后创建两个不同名字的链接,让这两个链接处理不同的逻辑。建立脚本test38.sh如下:

/bin/bash

name=$(basename $0)

if [ $name = "add" ];then

res=$[ $1 + $2 ]

elif [ $name = "mul" ];then

res=$[ $1 * $2 ]

fi

echo "$0 -> result is $res"

然后,创建两个链接文件:

ln -s test38.sh add

ln -s test38.sh mul

输入:

./add 4 4

运行结果为:

./add -> result is 8

输入:

./mul 5 6

运行结果为:

./mul -> result is 30

网络讯息

科学回奶的7个方法

2023-3-4 14:58:51

网络讯息

地税网上申报系统(种综合申报电子税务局操作问答来啦)

2023-3-4 15:00:17

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索