linuxsh脚本传参数,LINUX的bash如何给shell脚本传参数
bash命令后边可以跟任意的参数,具体要如何操作?
执⾏“vi test.sh”创建⼀个新的shell脚本。
脚本test.sh的内容如下:
#!/bin/sh name=$1 echo "the ${name} !"
给新建的test.sh的脚本赋可执⾏权限,命令为“chmod 755 test.sh”。执⾏可以看到结果.shell代码
如果想判断参数为空则中⽌执⾏,可以
if [ "$1" = "" ]; then echo -e "请提供参数." exit 1 fi
或:
if [ $# == 0 ];then echo "没有带参数"; else echo "带了$#个参数" fi
或:
if [ "$1" ];then echo "带参数"; else echo "没有带参数 " fi
上⾯的代码其实和使⽤if结构的-z参数是⼀样的,都是⽤于检测字符串是符不空值。因此也可以换成使⽤-z参数来判断。⽰例代码如下 :
if [ -z "$1" ];then echo "没有带参数"; else echo "带参数" fi
详解:
“name=$1″中$1为系统提供的位置参数,$0代表程序的名称,[$1/$2/…]从1开始为传递的参数。
linux系统除了提供位置参数还提供内置参数,内置参数如下:
$# ----传递给程序的总的参数数⽬  $? ----上⼀个代码或者shell程序在shell中退出的情况,如果正常退出则返回0,反之为⾮0值。 $* ----传递给程序的所有参数组成的字符串。 $n ----表⽰第⼏个参数,$1 表⽰第⼀个参数,$2 表⽰第⼆个参数 ... $0 ----当前程序的名称 $@----以"参数1" "参数2" ... 形式保存所有参数 $$ ----本程序的(进程ID号)PID $! ----上⼀个命令的PID