您的位置:首页 > 运维架构 > Shell

linux shell变量$#,$@,$0,$1,$2的含义解释

2015-07-28 22:45 591 查看
变量说明:
$$ Shell本身的PID(ProcessID)
$! Shell最后运行的后台Process的PID
$? 最后运行的命令的结束代码(返回值)
$- 使用Set命令设定的Flag一览
$* 所有参数列表。 所有的参数被认为是一个字符串
$@ 所有参数列表。参数是独立的字符串
$# 添加到Shell的参数个数
$0 Shell本身的文件名
$1~$n 添加到Shell的各参数值。$1是第1个参数、$2是第2个参数…。

通过一个脚本,来看看各个变量的效果

#!/bin/sh

## RustFisher

echo "----------------------"
echo "PID:            \$$  $$"
echo "option numbers: \$#  $#"
echo "last return:    \$?  $?"
echo "all parameters: \$*  $*"
echo "all parameters: \$@  $@"
echo "file name:      \$0  $0"
echo "1st param:      \$1  $1"
echo "2nd param:      \$2  $2"
echo "3rd param:      \$3  $3"
echo "4th param:      \$4  $4"
echo "9th parem:      \$9  $9"
echo "-----------------------"

index=1

echo "get args by \"\$@\":"

for arg in "$@"
do
echo "Arg #$index=$arg"
let "index+=1"
done

echo "-----------------------"

index=1

echo "get args by \"\$*\":"

for arg in "$*"
do
echo "Arg #$index=$arg"
done

echo "-----------------------"


输出结果:

$ sh show.sh dont "worry be" happy
----------------------
PID:            $$  12897
option numbers: $#  3
last return:    $?  0
all parameters: $*  dont worry be happy
all parameters: $@  dont worry be happy
file name:      $0  show.sh
1st param:      $1  dont
2nd param:      $2  worry be
3rd param:      $3  happy
4th param:      $4
9th parem:      $9
-----------------------
get args by "$@":
Arg #1=dont
Arg #2=worry be
Arg #3=happy
-----------------------
get args by "$*":
Arg #1=dont worry be happy
-----------------------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: