linux中shell变量$#,$@,$0,$1,$2的含义解释/Shell中的${}##和%%使用范例/export

Posted alextongtong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux中shell变量$#,$@,$0,$1,$2的含义解释/Shell中的${}##和%%使用范例/export相关的知识,希望对你有一定的参考价值。

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参数…。 

-----------------------------------------------------------------

介绍下Shell中的$、##和%%使用范例,本文给出了不同情况下得到的结果。
假设定义了一个变量为:
代码如下:
file=/dir1/dir2/dir3/my.file.txt
可以用$ 分别替换得到不同的值:
$file#*/:删掉第一个 / 及其左边的字符串:dir1/dir2/dir3/my.file.txt
$file##*/:删掉最后一个 / 及其左边的字符串:my.file.txt
$file#*.:删掉第一个 . 及其左边的字符串:file.txt
$file##*.:删掉最后一个 . 及其左边的字符串:txt
$file%/*:删掉最后一个 / 及其右边的字符串:/dir1/dir2/dir3
$file%%/*:删掉第一个 / 及其右边的字符串:(空值)
$file%.*:删掉最后一个 . 及其右边的字符串:/dir1/dir2/dir3/my.file
$file%%.*:删掉第一个 . 及其右边的字符串:/dir1/dir2/dir3/my
记忆的方法为:
# 是 去掉左边(键盘上#在 $ 的左边)
%是去掉右边(键盘上% 在$ 的右边)
单一符号是最小匹配;两个符号是最大匹配
$file:0:5:提取最左边的 5 个字节:/dir1
$file:5:5:提取第 5 个字节右边的连续5个字节:/dir2
也可以对变量值里的字符串作替换:
$file/dir/path:将第一个dir 替换为path:/path1/dir2/dir3/my.file.txt
$file//dir/path:将全部dir 替换为 path:/path1/path2/path3/my.file.txt

//------------------------------------------------------------------------------------------------------

1、执行脚本时是在一个子shell环境运行的,脚本执行完后该子shell自动退出;

2、一个shell中的系统环境变量怎样才会被复制到子shell中(用export定义的变量);

3、一个shell中的系统环境变量只对该shell或者它的子shell有效,该shell结束时变量消失(并不能返回到父shell中)。

4、不用export定义的变量只对该shell有效,对子shell是无效的。


---------------------------------------

-d :判断制定的是否为目录
-z:判断制定的变量是否存在值
-f:判断制定的是否为文件
-L:判断制定的是否为符号链接
-r:判断制定的是否可读
-s:判断存在的对象长度是否为0
-w:判断制定的是否可写
-x:判断存在的对象是否可以执行
!:测试条件的否定符号
这些文件操作很多时候给脚本编程带来方便,尤其是用在if条件语句中

以上是关于linux中shell变量$#,$@,$0,$1,$2的含义解释/Shell中的${}##和%%使用范例/export的主要内容,如果未能解决你的问题,请参考以下文章

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

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

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

linux中shell变量$#,$@,$0,$1,$2的含义解释/Shell中的${}##和%%使用范例/export

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

linux的shell变量之美元符号