Shell 脚本中常用的内置变量 你知道吗?
原创Shell 脚本中常用的内置变量
Shell 脚本是一种常用的脚本语言,它首要用于在 Unix-like 操作系统中执行自动化任务。在 Shell 脚本中,内置变量是脚本编写中不可或缺的部分。内置变量是 Shell 提供的一组预定义的环境变量,它们可以直接在脚本中使用,无需定义。以下是一些 Shell 脚本中常用的内置变量及其用途。
### 1. `$HOME`
`$HOME` 变量用于获取当前用户的主目录路径。在大多数系统中,它等同于 `/home/用户名`。
#!/bin/bash
echo "当前用户的主目录:$HOME"
### 2. `$PWD`
`$PWD` 变量用于获取当前工作目录的路径。
#!/bin/bash
echo "当前工作目录:$PWD"
cd /path/to/directory
echo "更改后的工作目录:$PWD"
### 3. `$USER`
`$USER` 变量用于获取当前登录的用户名。
#!/bin/bash
echo "当前用户名:$USER"
### 4. `$HOSTNAME`
`$HOSTNAME` 变量用于获取当前主机的名称。
#!/bin/bash
echo "主机名称:$HOSTNAME"
### 5. `$PWD`
`$PWD` 变量用于获取当前工作目录的路径。
#!/bin/bash
echo "当前工作目录:$PWD"
cd /path/to/directory
echo "更改后的工作目录:$PWD"
### 6. `$0`
`$0` 变量用于获取当前脚本的名称。当脚本被调用时,这个变量会包含脚本的文件名。
#!/bin/bash
echo "脚本名称:$0"
### 7. `$#`
`$#` 变量用于获取传递给脚本的参数数量。
#!/bin/bash
echo "参数数量:$#"
if [ $# -eq 0 ]; then
echo "没有参数传递给脚本。"
else
echo "传递的参数有:$*"
fi
### 8. `$*`
`$*` 变量用于获取传递给脚本的所有参数。与 `$#` 不同的是,它将所有参数视为一个单独的字符串。
#!/bin/bash
echo "所有参数:$*"
### 9. `$1`, `$2`, `$3`, ...
`$1`, `$2`, `$3`, ... 等变量用于获取传递给脚本的第 1、第 2、第 3 个参数,以此类推。
#!/bin/bash
echo "第一个参数:$1"
echo "第二个参数:$2"
echo "第三个参数:$3"
### 10. `$?`
`$?` 变量用于获取上一个命令的退出状态。如果上一个命令圆满执行,则返回 0;如果执行未果,则返回非 0 值。
#!/bin/bash
ls /nonexistent/directory
echo "上一个命令的退出状态:$?"
### 11. `$!`
`$!` 变量用于获取最后一个后台命令的进程 ID。
#!/bin/bash
sleep 10 &
echo "后台进程的 PID:$!"
### 12. `$(`)
`$(`) 是一个命令替换,它允许将一个命令的输出作为变量使用。例如,`$((2+2))` 会将 4 作为导致存储在 `$((2+2))` 中。
#!/bin/bash
result=$((2+2))
echo "计算导致:$result"
这些是 Shell 脚本中一些常用的内置变量。掌握这些变量有助于编写更高效、更灵活的脚本。在实际应用中,可以通过需要选择合适的内置变量来实现不同的功能。随着经验的积累,你将能够更熟练地使用这些内置变量,从而尽大概减少损耗你的脚本编写技巧。