bash脚本----传参的处理
- 其他
- 2025-09-01 03:15:02

Linux脚本:Bash脚本看这一篇就够了-CSDN博客
脚本传参: ./my_script.sh arg1 arg2 arg3使用以下几个变量进行处理:
$0 #即命令本身(my_script.sh),相当于c/c++中的argv[0]; $1 #第一个参数(arg1),$2, $3, $4 ... #第2、3、4个参数,依次类推; $# #参数的个数,不包括命令本身,上述例子$# = 3; $@ #参数本身的列表,不包括命令本身; $* #和$@相同,但"$*"和"$@"(加引号)并不同, #"$*"将所有的参数解释成一个字符串,而"$@"是一个参数数组
(1)脚本传参的个数:"$#" 用于表示传递给脚本的**位置参数(positional arguments)**的数量。
位置参数是指在命令行中直接跟随脚本名称的参数。仅计算位置参数,不包括脚本名称本身。例如,./script.sh 中的 script.sh 不算作参数。
if [ "$#" -lt 4 ]; then xxx else xxx fi (2)长选项、短选项$ command [option] [paraments]
对于选项(option)类型有两种:
1)短选项(short option):由一个连字符和一个字母构成,例如:-a, -s等; 2)长选项(long options):由两个连字符和一些大小写字母组合的单词构成,例如:--size,--help等。
短选项:-n -m 也算是参数。
./arg_info.sh -n 1 -m 2 arg1 -n arg2 1 arg3 -m arg4 2 arg_num =4 (3)改变参数索引:shift在 Bash 脚本中,shift 是一个内置命令,用于操作脚本的位置参数($1、$2、$3 等)。它的主要功能是将位置参数向左移动(即“移位”),从而改变参数的索引位置。这在处理命令行参数时非常有用,尤其是在循环中逐个处理参数时。
每次执行 shift 命令时,位置参数 $1 会被丢弃,其他参数的索引会依次向前移动。
./my_script.sh -n 1 -m 2 -s 3 while [ -n "$1" ] #检查参数1是否为空 do case "$1" in #根据当前参数1的值匹配不同的选项,并执行相应的逻辑 -n) xxx shift;; -m) xxx shift;; *) xxx esac shift done ./script.sh a b c d在脚本中,位置参数的初始状态如下:
$1 = a
$2 = b
$3 = c
$4 = d
shift执行shift指令后,参数的索引会向前移动一位:
$1 = b
$2 = c
$3 = d
$4 不再存在(被丢弃)
再次执行shift指令后,
$1 = c
$2 = d
$3 不再存在(被丢弃)
bash脚本----传参的处理由讯客互联其他栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“bash脚本----传参的处理”