shell——参数的传递

很多时候shell脚本的执行时需要向其传递参数,脚本执行中获取参数格式是 $n,n为自然数,从1开始,几就是第几个参数。

#!/bin/bash
#author:atong
#version:test1
echo "我们来看例子!!"
echo "$0"
echo "第一个参数:$1"
echo "第二个参数:$2"
echo "第三个参数:$3"

$0就是打印shell脚本文件名

输出结果 

# sh parameter_passing.sh  w e r
我们来看例子!!
parameter_passing.sh
第一个参数:w
第二个参数:e
第三个参数:r

 我们在后面会在编写脚本时,遇到很多常用、特殊、必记的参数:

参数作用
$#统计传递到脚本的参数个数
$*以字符串的形式输出传递的所有参数
$$脚本运行当前进程ID号

$@

和$*相同,但使用时加引号,并在引号中返回每个参数
$!后台运行的最后一个进程ID号
                $-显示shell使用的当前选项,与set命令功能相同
                $?显示最后命令的退出状态。0表示无误,其余值都表明有错误。

 例

#!/bin/bash
#author:atong
#version:test1
echo "我们来看例子!!"
echo "$0"
echo "第一个参数:$1"
echo "传参的个数:$#"
echo "所有参数字符串输出:$*"
sh parameter_passing.sh  w e r
我们来看例子!!
parameter_passing.sh
第一个参数:w
传参的个数:3
所有参数字符串输出:w e r

$*和$@

同:都会引用到传递的参数

异:$*是把所有参数看作一个参数,$@是看作分开的独立参数

#!/bin/bash
#author:atong
#version:test1
echo "------\$* 效果------"
for i in "$*";do
        echo $i
done

echo "------\$@ 效果------"
for i in "$@";do
        echo $i
done

 输出效果

 sh parameter_tt.sh 1 3 5
------$* 效果------
1 3 5
------$@ 效果------
1
3
5

 在shell脚本传参时,参数中若包含空格,应该使用单引号或双引号将该参数括起来,以便脚本将此参数作为整体接收。

 

 在有参数时,可使用对参数进行校验的方式处理以减少不必要的错误。

if [ -n "$1" ];then
    echo "包含第一个参数"
else
    echo "未包含第一个参数"
fi

[ ]中与代码内容用空格隔开,以便让脚本区分。

  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值