linux中$0 $1 $? $#等代表的含义

$# :传给脚本的参数个数;
$0 :脚本名称;
$n :n为数字,代表传给脚本的第n个参数;
$@ :参数列表\数组;
$*  :也是显示参数列表,与上一条命令不同的是,当在双引号里面时,”$*”表示一个参数,即”a b c”,而”$@”表示三个参数,即”a” “b” “c”;
$$ :执行当前脚本的进程ID;
$? :最后一条命令的退出状态,0表示执行成功,非0表示执行失败.

示例1: 建立一个脚本test.sh
echo "number:$#"
echo "scname:$0"
echo "first :$1"
echo "second:$2"
echo "third :$3"
echo "fourth:$4"
echo "argume:$@"
echo "show parm list:$*"
echo "show process id:$$"
echo "show precomm stat: $?"

  执行脚本,传入参数a b c:

[root@test test]# sh test.sh a b c d
number:4
scname:test.sh
first :a
second:b
third :c
fourth:d
argume:a b c d
show parm list:a b c d
show process id:2568
show precomm stat: 0

示例2: 建立一个脚本test2.sh (“$*”和“$@”区别:分别给$*和$@,$*等价于传入一个参数,而$@则是多个参数;只在有双引号时才体现)

#!/bin/bash

echo "------\$*------"
for i in "$*";do
    echo $i
done

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

  执行脚本,传入参数 a b c

------$*------
a b c

------$@-----
a
b
c

  

 

posted @ 2020-07-04 11:51  zhuguoqing  阅读(1903)  评论(0编辑  收藏  举报