随便学一学Shell脚本 -- 2. 传递参数

131 阅读1分钟

在 shell 中,$ 符号有多种用法,下面将详细介绍。

  1. 变量引用 在 shell 中,符号可以用来引用变量。例如,如果有一个名为name的变量,可以使用符号可以用来引用变量。例如,如果有一个名为 name 的变量,可以使用name 来引用它的值。示例代码如下:
name="John"
echo "My name is $name"

输出结果为:

My name is John
  1. 环境变量引用 除了普通变量,$ 符号还可以用来引用环境变量。环境变量是在 shell 启动时设置的变量,可以在整个 shell 会话中使用。例如,$HOME 可以用来引用当前用户的主目录。示例代码如下:
echo "My home directory is $HOME"

输出结果为:

My home directory is /home/user
  1. 命令替换 $ 符号还可以用来进行命令替换。命令替换是指将命令的输出作为字符串插入到另一个命令中。例如,可以使用 $(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
  1. 特殊变量 在 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 进程的进程号。