Shell 脚本中常用的内置变量 你知道吗?

原创
ithorizon 7个月前 (10-15) 阅读数 33 #Linux

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 脚本中一些常用的内置变量。掌握这些变量有助于编写更高效、更灵活的脚本。在实际应用中,可以通过需要选择合适的内置变量来实现不同的功能。随着经验的积累,你将能够更熟练地使用这些内置变量,从而尽大概减少损耗你的脚本编写技巧。

本文由IT视界版权所有,禁止未经同意的情况下转发

文章标签: Linux


热门