上海公安门户网站官网迁移户口新政百度快速收录
通常情况下,在工作中用的最多的有如下几项:
$0:Shell 的命令本身
1到9:表示 Shell 的第几个参数
$? :显示最后命令的执行情况
$#:传递到脚本的参数个数
$$:脚本运行的当前进程 ID 号
$*:以一个单字符串显示所有向脚本传递的参数
$!:后台运行的最后一个进程的 ID 号
$-:显示 Shell 使用的当前选项
…
在Shell脚本中,我们经常会看到$0、$1、$2、$3等,看着像是参数,但又不太像,这些究竟表示啥呢?其实非常简单:
$0:你写的shell脚本本身的名字
$1:给你写的shell脚本传的第一个参数
$2:给你写的shell脚本传的第二个参数
#!/bin/sh
echo "shell脚本本身的名字: $0"
echo "传给shell的第一个参数: $1"
echo "传给shell的第二个参数: $2"
假设该脚本名字叫test.sh,那么我们执行bash test.sh a 1,就可以看到结果:
shell脚本本身的名字: test.sh
传给shell的第一个参数: a
传给shell的第二个参数: 1
Linux脚本中$#、$0、 1 、 1、 1、@、 ∗ 、 *、 ∗、 、 、 、分别表示什么?
$#:传入脚本的参数个数;$0: 脚本自身的名称; $1: 传入脚本的第一个参数;$2: 传入脚本的第二个参数;$@: 传入脚本的所有参数;$*:传入脚本的所有参数;$$: 脚本执行的进程id;$?: 上一条命令执行后的状态,结果为0表示执行正常,结果为1表示执行异常;其中$@与$*正常情况下一样,当在脚本中将$*加上双引号作为“$*”引用时,此时将输入的所有参数当做一个整体字符串对待。比如输入参数有a b c三个参数,则“$*”表示“a b c”一个字符串。