跳转至

Shell script中的8个常用的特殊变量

当编写Shell脚本时,了解和使用特殊变量是非常重要的。特殊变量是Shell提供的一些特定用途的变量,它们包含了有关脚本和其环境的重要信息。下面是Shell脚本中八个常用的特殊变量,以及它们的代码和输出示例。

  1. $0 - 当前脚本的文件名。
#!/bin/bash
echo "当前脚本的文件名是:$0"

输出:

当前脚本的文件名是:script.sh

2.$1$9 - 用于访问脚本的位置参数(命令行参数)

#!/bin/bash
echo "第一个参数:$1"
echo "第二个参数:$2"
echo "第三个参数:$3"

命令行输入:

./script.sh arg1 arg2 arg3

输出:

第一个参数:arg1
第二个参数:arg2
第三个参数:arg3

3.$# - 传递给脚本的参数个数。

#!/bin/bash
echo "传递给脚本的参数个数:$#"

命令行输入:

./script.sh arg1 arg2 arg3

输出:

传递给脚本的参数个数:3

4.$* - 以一个单字符串显示所有位置参数。

#!/bin/bash
echo "所有位置参数:$*"

命令行输入:

./script.sh arg1 arg2 arg3

输出:

所有位置参数:arg1 arg2 arg3

5. $@ - 以一个字符串列表显示所有位置参数

#!/bin/bash
echo "所有位置参数:$@"

命令行输入:

./script.sh arg1 arg2 arg3

输出:

所有位置参数:arg1 arg2 arg3

6. $? - 上一个命令的退出状态或返回值。

#!/bin/bash
ls
echo "上一个命令的退出状态:$?"

输出:

file1.txt  file2.txt
上一个命令的退出状态:0

7. $$ - 当前脚本的进程ID。

#!/bin/bash
echo "当前脚本的进程ID:$$"

输出:

当前脚本的进程ID:12345

8 $! - 后台运行的最后一个进程的进程ID。

#!/bin/bash
sleep 10 &
echo "后台进程的进程ID:$!"

输出:

后台进程的进程ID:67890