linux shell传递参数

本文深入讲解了Shell脚本中参数的传递方式,包括如何在执行脚本时传递参数,脚本内部如何接收和处理这些参数,以及特殊符号如$#, $*, $$, $!, $@, $-, $?的作用和用法。通过多个实例演示了参数处理的细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

shell 传递参数
可以在执行shell脚本时,向脚本传递参数,脚本获取参数格式:$n. n代表数字,1为脚本的第一个参数,2为执行脚本的第二个参数,一次类推。
例:

#文件名test.sh
echo "shell 传递实参";
echo "执行文件名 $0";
echo "第一个参数 $1"
echo "第二个参数 $2";

执行脚本

$ chmod +x test.sh   #修改文件为可执行文件
$ ./test.sh 1  2
shell传递实参
执行文件名 ./test.sh
第一个参数1
第二个参数2

特殊符号处理参数

参数处理说明
$#传递到脚本的个数
$*以一个单字符串显示所有向脚本传递的参数
$$脚本运行的当前进程ID
$!后台运行的最后一个进程ID号
$@与$#相似,使用时加双引号,并在引号中返还每个参数
$-显示Shell使用的当前选项,与set命令相同
$?显示最后的命令退出状态。0表示无错误。

例:

#test1.sh
    echo "Shell 传递参数实例!"
    echo "第一个参数: $1"
    echo "参数的个数: $#"
    echo "传递的参数作为一个字符串显示:$*"

执行脚本,输出结果

$ chmod +x test1.sh
$ ./test.sh 1 2
Shell 传递参数实例
第一个参数: 1
参数个数: 2
传递的参数作为一个字符串显示;   1 2

∗ 与 * 与 @区别:
只有在双引号中体现出来。假设在脚本运行时写了三个参数1 ,2 ,3. 则“*”等价于“1 2 3”(传递了一个参数),而“@”等价于“1” “2” “3”(传递了三个参数)。

例:

    #test2.sh
    echo "---$*----演示"
     for i in "$*"; do
         echo $i
     done
  
  echo "----$@---演示"
  for i in "$@"; do
       echo $i
  done

执行结果:

$chmod +x test2.sh
$./test2.sh  1 2 3
---$*---演示
1 2 3
---$@---演示
1
2
3
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值