在 shell 中,$ 符号有多种用法,下面将详细介绍。
- 变量引用 在 shell 中,name 来引用它的值。示例代码如下:
name="John"
echo "My name is $name"
输出结果为:
My name is John
- 环境变量引用 除了普通变量,$ 符号还可以用来引用环境变量。环境变量是在 shell 启动时设置的变量,可以在整个 shell 会话中使用。例如,$HOME 可以用来引用当前用户的主目录。示例代码如下:
echo "My home directory is $HOME"
输出结果为:
My home directory is /home/user
- 命令替换
$ 符号还可以用来进行命令替换。命令替换是指将命令的输出作为字符串插入到另一个命令中。例如,可以使用 $(command) 或者
command来进行命令替换。示例代码如下:
echo "Today is $(date)"
echo "My username is `whoami`"
输出结果为:
Today is Fri Oct 22 10:30:00 CST 2021
My username is user
- 特殊变量 在 shell 中,$ 符号还可以用来引用一些特殊变量。例如,$0 表示当前脚本的文件名,$1 表示第一个参数,$2 表示第二个参数,以此类推。示例代码如下:
echo "The script name is $0"
echo "The first argument is $1"
echo "The second argument is $2"
如果执行脚本时传入了两个参数,输出结果为:
The script name is ./test.sh
The first argument
echo "The second argument is $3"
- $0:当前脚本的文件名。
- $1、$2、$3...:当前脚本的参数。
- $#:当前脚本的参数个数。
- $@:当前脚本的所有参数。
- $?:上一个命令的返回值。
- $$:当前 shell 进程的进程号。