shell传递参数

案例,参数比较

找出传递参数最大的数字

# vi compare_parameter.sh 

#!/bin/bash
if [ $# -ne 3 ] then echo "$0:number1 number2 number3 are not given" >&2 exit 1 fi n1=$1 n2=$2 n3=$3 if [ $n1 -gt $n2 ] && [ $n1 -gt $n3 ] then echo "$n1 is Bigest number" elif [ $n2 -gt $n1 ] && [ $n2 -gt $n3 ] then echo "$n2 is Bigest number" elif [ $n3 -gt $n1 ] && [ $n3 -gt $n2 ] then echo "$n3 is Bigest number" elif [ $1 -eq $2 ] && [ $1 -eq $3 ] && [ $2 -eq $3 ] then echo "All the three numbers are equal" else echo " I can not figure out which number is biger" fi

通过参数描述变量案例

# vi describe_parameter

#!/bin/bash
if
[ $# -lt 3 ] then echo " Error! Not Enough Arguments " echo " $0 $@ " exit 1 fi func(){ return 1; } func echo '"$?":'"$?" # result from func

echo '"$0":'"$0"

echo '"$1":'"$1"

echo '"$2":'"$2"

echo '"$3":'"$3"

echo '"$@":'"$@"
echo '"$#":'"$#" 
echo
'"$$":'"$$"
echo
'"$?":'"$?" # result from last one : "$$"

$$  脚本运行的当前进程ID号

$?  显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。

# chmod +x describe_parameter.sh 

# ./describe_parameter.sh ouyangyewei yihaodian 23

$@与$*的区别是?

注意:$* 与 $@ 区别:

相同点:都是引用所有参数。

不同点:只有在双引号中体现出来。假设在脚本运行时写了三个参数 1、2、3,,则 " * " 等价于 "1 2 3"(传递了一个参数),而 "@" 等价于 "1" "2" "3"(传递了三个参数)。

作业

编写shell脚本,要求输入5个参数,并将参数按与输入顺序相反的顺序输出。

#!/bin/bash
if [ $# -eq 5 ]
then
echo "$5"
echo "$4"
echo "$3"
echo "$2"
echo "$1"
else
echo " 请输入五个参数!"
fi

 end

转载于:https://www.cnblogs.com/djlsunshine/p/9866667.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值