Linux特殊变量$@,$#,$*,$?,$$,$0

2019-08-27  本文已影响0人  阿基米德来了
脚本参数变量 含义
$n(n为数字) 表示后接的第n个参数,n=1,2...。若n=0,则表示脚本名称
$# 表示脚本后面接的参数的个数(即不包括脚本名称$0)
$@ 表示脚本所有参数,但以类似数组的形式,如[ "$1","$2","$3" ]。每个变量为独立的。
$* 表示脚本所有参数合成的字符串,如[ "$1 $2 $3" ]。默认是以空格键作为分割符

补充:shift 命令可以移动脚本参数,后面可接数字,表示偏移的参数个数

[test@test]$ vim test.sh
#!/bin/bash
shift 2
echo "paramter: $@"
echo "paramter number: $#"
#执行结果如下
[test@test]$ bash test.sh one two three
paramter: three
paramter number: 1
命令行/脚本变量 含义
$? 前一个命令执行完毕的返回值,0表示成功。可与exit n(n为数字)配合使用
$$ 取得进程的PID。命令行使用,取得当前shell的PID。脚本内则为脚本进程的PID
$! Shell最后运行的后台进程的PID
$- 内容为 set 的所有设定(set 可以设定指令的输出输入环境)

补充:$!可能比较难理解,实例如下

[test@test]$ sleep 300 &
[2] 2388
[test@test]$ echo $!
2388
上一篇 下一篇

猜你喜欢

热点阅读