linux之Shell编程--Shell参数传递实例演示
Posted 菠萝印象威
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux之Shell编程--Shell参数传递实例演示相关的知识,希望对你有一定的参考价值。
一.Shell传递参数的格式
脚本内获取参数的格式为:$n(n为数字),例如:1为执行脚本的第一个参数,2为执行脚本的第二个参数。
二.Shell传递参数实例演示
vim创建canshu.sh后输入以下内容,保存。
给脚本设置可执行权限后输入 ./canshu.sh 1 2 3 后结果如下
从结果可知:
$0为执行文件名(包含文件路径)
执行文件名后的1,2,3就是传入的参数
特殊字符处理参数
$#:传递到脚本的参数个数
$$:脚本运行的当前进程ID号
$!:后台运行的最后一个进程的ID号
$?:显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。
$*:传递的参数用字符串显示出来(返回的参数为一个字符串)
$@:传递的参数显示出来(返回每个引号的参数)
演示:
运行结果:
分析:
从结果看$*和 $@可能并没有什不同,但是实际上 $ *输出的是"1 2 3",而$@输出的结果为"1",“2”,“3”,一个是字符串,一个是三个字符。
$@ 和 $*的区别
@表示每一个独立的参数,如"1",“2”,“3”(表示传递了三个参数)。
*表示一个整体,如"1 2 3"(传递了一个参数)
相同点都是传递参数,只是表示的传递参数的个数可能不同。
使用循环输出演示 $*和 $@的不同
结果:
可以发现:
循环输出 $*只得到一个参数为"1 2 3"。
循环输出 $@得到三个参数为"1",“2”,“3”。
三.判断参数是否为空
这一段脚本有很多值得注意的地方
1.注释:单行注释可以使用 #,多行注释使用
: << !
注释的脚本代码
!
或者
: '
注释的代码
’
或者
if false; then
注释的代码
fi
2.[ -n “$1” ]中的 [] 使用空格隔开,这一段表示第一个参数是否为空"$1"可以改为"$2"或者其他的。
3 if语句要以fi为结束符,类似于endif。
上面的结果演示:
改为"$2"会怎样呢
结果:
知识点:
Shell里的[]与[[]]
1.判断一个变量是否为n, [ $var -eq n ] (n为变量,可以是1,2,3)。
2.文件判断,文件是否存在[ -e $var ], 是否是目录,[ -d $var ]。
3.字符串比较,判断两个字符串是否相同, [[ $var1 = $var2 ]]。
演示:
结果:
Shell参数传递的实例演示就讲到这里,后面还会进一步演示Shell的其他编程的知识。
以上是关于linux之Shell编程--Shell参数传递实例演示的主要内容,如果未能解决你的问题,请参考以下文章