Linux shell中一些参数与变量简介

简介:

linux中shell变量$#,$@,$0,$1,$2,$!,$$,$*,$-,$@......等很多个,很容易记错,这里再次整理一下,相关含义解释如下,并附上一个实践截图。

多看几次,多用几次,应该就记熟悉了。

 
变量说明: 
$$ 
Shell本身的PID(ProcessID) 
$! 
Shell最后运行的后台Process的PID 
$? 
最后运行的命令的结束代码(返回值) 
$- 
使用Set命令设定的Flag一览 
$* 
所有参数列表。如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。 
$@ 
所有参数列表。如"$@"用「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数。 
$# 
添加到Shell的参数个数 
$0 
Shell本身的文件名 
$1~$n 
添加到Shell的各参数值。$1是第1参数、$2是第2参数…。 

 

根据上面的解释,我做了一下实验,如下:

复制代码

#!/bin/bash

 
 

printf "The complete list \$\$ is %s\n" "$$"
printf "The complete list \$\! is %s\n" "$!"
printf "The complete list \$\- is %s\n" "$-"
printf "The complete list \$\? is %s\n" "$?"
printf "The complete list \$\* is %s\n" "$*"
printf "The complete list \$\@ is %s\n" "$@"
printf "The complete list \$\# is %s\n" "$#"
printf "The complete list \$\0 is %s\n" "$0"
printf "The complete list \$\1 is %s\n" "$1"
printf "The complete list \$\2 is %s\n" "$2"
printf "The complete list \$0,\$1,\$2,\$3,\$4 is %s\n" "$0,$1,$2,$3,$4"

复制代码

shell执行结果如下:

对着再看几次,应该就记住了。

 

也就是说:

$# 是传给脚本的参数个数
$0 是脚本本身的名字
$1是传递给该shell脚本的第一个参数
$2是传递给该shell脚本的第二个参数
$@ 是传给脚本的所有参数的列表

 



本文转自 念槐聚 博客园博客,原文链接:http://www.cnblogs.com/haochuang/p/6739593.html,如需转载请自行联系原作者

相关文章
|
3月前
|
Linux
在Linux中,列出几种常见打包工具并写相应解压缩参数。
在Linux中,列出几种常见打包工具并写相应解压缩参数。
|
1月前
|
Unix 关系型数据库 MySQL
Linux 简介
Linux 简介
44 2
Linux 简介
|
1月前
|
存储 Java Shell
Shell 变量
10月更文挑战第2天
26 0
|
2月前
|
Shell
shell脚本变量 $name ${name}啥区别
shell脚本变量 $name ${name}啥区别
|
2月前
|
Linux Docker 容器
Linux的namespace和cgroups简介
本文介绍了Linux的Namespace技术和cgroups,解释了它们如何帮助实现容器的隔离和资源限制。
104 7
Linux的namespace和cgroups简介
|
1月前
|
大数据 Linux 开发工具
【Linux】命令简介------迅速掌握Linux命令
【Linux】命令简介------迅速掌握Linux命令
|
2月前
|
Java Shell Linux
Shell 变量设置
Shell设置变量
46 5
|
3月前
|
Java Shell Linux
【Linux入门技巧】新员工必看:用Shell脚本轻松解析应用服务日志
关于如何使用Shell脚本来解析Linux系统中的应用服务日志,提供了脚本实现的详细步骤和技巧,以及一些Shell编程的技能扩展。
56 0
【Linux入门技巧】新员工必看:用Shell脚本轻松解析应用服务日志
|
2月前
|
Java Shell Linux
Shell 变量设置25-1
Shell编程语言是一种非类型的解释型语言,无需像C++/Java那样事先声明变量。通过赋值即可定义变量,在Linux支持的所有Shell中均适用。变量分为局部变量与环境变量,前者仅限于定义脚本内使用,后者可在其派生的子进程中使用。常见系统变量如$0表示当前程序名称,$n表示第n个参数(n=1,2,...,9),$*代表所有参数,$#代表参数个数,$?表示命令执行后的状态(0为成功),$UID为当前用户ID,$PWD表示当前目录。定义变量如`A=123`,
30 0
|
3月前
|
存储 安全 Linux
在Linux中,内核调优配置文件名字有哪些?举例几个内核需要优化的参数配置?
在Linux中,内核调优配置文件名字有哪些?举例几个内核需要优化的参数配置?
下一篇
无影云桌面