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

   发布日期:2022-08-15 17:34:59     手机:https://m.haocat.cn/zonghe/news51032.html    违规举报
核心提示:什么是命令行参数(读取shell命令行中的参数)shell脚本通过美元符号$读取命令行中的参数,比如$0表示程序名,$1表示第一个参数,$2表示第二个参数,${10}表示表示第10个参数,以此类推。建立脚本test34.sh如下: #/bi

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

什么是命令行参数(读取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


 
 
本文地址:http://haocat.cn/zonghe/news51032.html,转载请注明出处。
 
更多>同类综合百科

推荐图文
推荐综合百科
点击排行
网站首页  |  网站流量  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  违规举报  |  SiteMaps  |  BaiDuNews