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

简介: 变量说明: $$ Shell本身的PID(ProcessID) $! Shell最后运行的后台Process的PID $? 最后运行的命令的结束代码(返回值) $- 使用Set命令设定的Flag一览 $* 所有参数列表。

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

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

 1 #!/bin/sh
 2 
 3 ## RustFisher
 4 
 5 echo "----------------------"
 6 echo "PID:            \$$  $$"
 7 echo "option numbers: \$#  $#"
 8 echo "last return:    \$?  $?"
 9 echo "all parameters: \$*  $*"
10 echo "all parameters: \$@  $@"
11 echo "file name:      \$0  $0"
12 echo "1st param:      \$1  $1"
13 echo "2nd param:      \$2  $2"
14 echo "3rd param:      \$3  $3"
15 echo "4th param:      \$4  $4"
16 echo "9th parem:      \$9  $9"
17 echo "-----------------------"
18 
19 index=1
20 
21 echo "get args by \"\$@\":"
22 
23 for arg in "$@"
24 do
25 echo "Arg #$index=$arg"
26 let "index+=1"
27 done
28 
29 echo "-----------------------"
30 
31 index=1
32 
33 echo "get args by \"\$*\":"
34 
35 for arg in "$*"
36 do
37 echo "Arg #$index=$arg"
38 done
39 
40 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
-----------------------

 

目录
相关文章
|
12天前
|
Web App开发 Java Linux
Linux之Shell基本命令篇
Linux之Shell基本命令篇
Linux之Shell基本命令篇
|
10天前
|
存储 Shell Linux
【攻防世界】unseping (反序列化与Linux bash shell)
【攻防世界】unseping (反序列化与Linux bash shell)
|
13天前
|
Shell Linux
【Linux】12. 模拟实现shell
【Linux】12. 模拟实现shell
27 2
|
18天前
|
Shell
【shell】shell命令行放在变量中执行以及变量的常用方法
【shell】shell命令行放在变量中执行以及变量的常用方法
|
19天前
|
Shell Linux
Linux的shell入门教程shell脚本入门教程
Linux的shell入门教程shell脚本入门教程
15 0
|
21天前
|
网络协议 Linux 网络安全
Linux服务器DNS服务器配置实现bind的正向解释和反向解释
Linux服务器DNS服务器配置实现bind的正向解释和反向解释
17 0
|
26天前
|
存储 算法 Shell
【Linux 环境变量相关】深入理解Linux下 CMake、Shell 与环境变量的交互(二)
【Linux 环境变量相关】深入理解Linux下 CMake、Shell 与环境变量的交互
45 0
|
26天前
|
Shell Linux 开发工具
shell的介绍以及Linux权限的讲解
shell的介绍以及Linux权限的讲解
31 2
|
2月前
|
Ubuntu Linux Shell
【Linux操作系统】探秘Linux奥秘:shell 编程的解密与实战
【Linux操作系统】探秘Linux奥秘:shell 编程的解密与实战
57 0
|
3月前
|
Shell Linux C++
Linux C/C++ 开发(学习笔记二):Shell脚本编程案例
Linux C/C++ 开发(学习笔记二):Shell脚本编程案例
38 0