ShellScript值传递参数

Shell传递参数

######################################摘自菜鸟教程:http://www.runoob.com/linux/linux-shell-passing-arguments.html #####################################

1、shell脚本传递参数

向脚本传递参数,脚本内获取参数的格式为:$nn 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推……

#!/bin/bash

echo "Shell脚本传递参数学习!"

echo "执行的文件名:$0"

echo "第一个参数为$1" ##第一个参数为1

echo "第二个参数为$2" ##第二个参数为2

echo "第三个参数为$3" ##第三个参数为3

执行shellscript脚本:./bian_trans1.sh 1 2 3

2、特殊字符来处理参数

参数处理

说明

$#

传递到脚本的参数个数

$*

以一个单字符串显示所有向脚本传递的参数。
如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。

$$

脚本运行的当前进程ID号

$!

后台运行的最后一个进程的ID号

$@

与$*相同,但是使用时加引号,并在引号中返回每个参数。
如"$@"用「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数。

$-

显示Shell使用的当前选项,与set命令功能相同。

$?

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

例子:

#!/bin/bash

echo "Shell脚本传递参数学习!"

echo "执行的文件名:$0"

echo "第一个参数为$1"

echo "第二个参数为$2"

echo "第三个参数为$3"

echo "传递到脚本的参数个数为:$#"  ##传递到脚本的参数个数为:3

echo "传递到脚本的参数为:$*" ##传递到脚本的参数为:1 2 3

echo "脚本运行的当前进程ID号:$$" ##脚本运行的当前进程ID号:14483

echo "后台运行的最后一个进程的ID号:$!" ##后台运行的最后一个进程的ID号:

echo "传递到脚本的参数为:"$@"" ##传递到脚本的参数为:1 2 3

echo "当前shell使用的选项为:$-" ##前shell使用的选项为:hB

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

运行当前脚本:./bian_trans2.sh 1 2 3

备注:$*与$@的区别

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

不同点:只有在双引号中体现出来。

#!/bin/bash

###演示$*的效果

echo "-----\$*的演示效果----"

for i in "$*";do

        echo $i

done

###打印效果:-----$*的演示效果----

1 2 3

###演示$@的效果

echo "-----\$@的演示效果-----"

for j in "$@";do

        echo $j  

done

###打印效果:-----$@的演示效果-----

1

2

3

猜你喜欢

转载自www.cnblogs.com/tengjiang/p/10713582.html