Bash 脚本信息指令指南26


在 Bash 脚本中,经常需要获取有关脚本本身或其执行环境的信息。Bash 提供了许多内建指令,可用于检索此类信息,从而增强脚本的灵活性和可维护性。

获取脚本路径

$0:此变量保存着正在执行的脚本的绝对路径。可以使用它来访问脚本文件或执行目录。例如:```bash
echo $0
/home/user/scripts/
```

获取脚本参数

$@:此变量以数组形式保存所有命令行参数。要访问单个参数,可以使用位置参数(如 $1、$2 等)。例如:```bash
echo "第一個參數:$1"
echo "所有參數:$@"
```

获取脚本 PID

$!:此变量保存着最后运行的后台进程的进程标识符 (PID)。可以使用它来监控进程或发送信号。例如:```bash
process_id=$!
echo "后台进程的 PID:$process_id"
# 稍後監控或發送信號
```

获取脚本执行状态

$?:此变量保存着上一个命令的退出状态。它可以用来检查脚本或命令是否成功运行。例如:```bash
command
if [ $? -eq 0 ]; then
echo "命令執行成功"
else
echo "命令執行失敗"
fi
```

获取当前行号

$LINENO:此变量保存着脚本中当前正在执行行的行号。它有助于调试和跟踪脚本执行。例如:```bash
echo "當前行號:$LINENO"
```

获取当前的工作目录

$PWD:此变量保存着脚本执行的工作目录的绝对路径。它可以用来访问或操作文件和目录。例如:```bash
echo "工作目錄:$PWD"
cd "$PWD/other-directory"
```

获取当前的 shell 名称

$SHELL:此变量保存着当前正在使用的 shell 的名称。它可以用来确定脚本正在哪个 shell 中运行。例如:```bash
echo "目前使用的 shell:$SHELL"
```

获取脚本调用者

$FUNCNAME:此变量保存着当前正在执行的函数的名称。如果脚本不是在函数中执行,则此变量为空。例如:```bash
function my_function() {
echo "函式名稱:$FUNCNAME"
}
my_function
```

获取 Bash 版本

$BASH_VERSION:此变量保存着当前正在使用的 Bash 版本。它可以用来检查脚本是否与特定版本的 Bash 兼容。例如:```bash
echo "Bash 版本:$BASH_VERSION"
```

获取 Bash 选项

$BASHOPTS:此变量保存着一个数组,其中包含当前启用的 Bash 选项。这些选项影响脚本的执行行为。例如:```bash
echo "Bash 啟用的選項:${BASHOPTS[*]}"
```

获取脚本执行时间

time:time 命令可以用来测量脚本的执行时间。它输出三个时间值:实际时间、用户时间和系统时间。例如:```bash
time ./
real 0m1.234s
user 0m0.567s
sys 0m0.345s
```

获取随机数

$RANDOM:此变量包含一个伪随机数。它可以用来生成随机数或随机化脚本执行。例如:```bash
echo "產生一個隨機數:$RANDOM"
```

获取环境变量

$VAR_NAME:可以通过变量名称获取环境变量的值。环境变量存储在当前 shell 会话中,并可以影响脚本的执行。例如:```bash
echo "取得環境變數 PATH 的值:$PATH"
```

获取输入输出信息

stdin、stdout 和 stderr:这些文件描述符分别代表标准输入、标准输出和标准错误输出。它们可以用来读写数据到脚本或从脚本读写数据。例如:```bash
# 從標準輸入讀取一行程
line=$(cat -)
# 將一行程寫入標準輸出
echo "這是一個訊息"
# 將一行程寫入標準錯誤輸出
echo "這是一個錯誤訊息" >&2
```
通过使用这些指令,脚本可以轻松地获取有关自身、其执行环境和外部输入输出的信息。这使脚本编写人员能够创建更健壮、更灵活的脚本,适应不同的情况和用户输入。

2024-12-18


上一篇:巧用Bash脚本判断系统版本

下一篇:利用 Bash 脚本高效创建目录