linux shell

关注公众号 jb51net

关闭
首页 > 脚本专栏 > linux shell > Bash特殊变量

Bash 脚本中的特殊变量及应用场景详解

作者:追逐此刻

这篇文章主要介绍了Bash 脚本中的特殊变量及应用场景,本文给大家介绍的非常详细对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧

在 Bash 脚本和命令行中,​特殊变量​(Special Variables)主要用于获取脚本或命令的上下文信息,如参数、进程状态、返回值等。以下是常见的特殊变量及其典型应用场景:

​1. 脚本参数处理​

$0$1$2 ... $9${10}...

典型用途​:

# script.sh
echo "脚本名称: $0"
echo "第一个参数: $1"
echo "第二个参数: $2"

运行示例​:

./script.sh hello world

输出​:

脚本名称: ./script.sh
第一个参数: hello
第二个参数: world

$#

典型用途​:

if [ $# -eq 0 ]; then
    echo "错误:请提供参数!"
    exit 1
fi

$* 和 $@

典型用途​:

for arg in "$@"; do
    echo "参数: $arg"
done

​2. 进程和返回值​

$$

典型用途​:

echo "当前进程 ID: $$"

输出​:

当前进程 ID: 12345

$?

典型用途​:

grep "keyword" file.txt
if [ $? -ne 0 ]; then
    echo "未找到 keyword!"
fi

或者:

command || echo "命令执行失败!"

$!

典型用途​:

sleep 10 &
echo "后台进程 PID: $!"

​3. 脚本自身信息​

$0

典型用途​:

echo "当前脚本: $0"

输出​:

当前脚本: ./test.sh

$_

典型用途​:

ls /usr/bin
echo "上一个命令的最后一个参数: $_"

输出​:

/usr/bin
上一个命令的最后一个参数: /usr/bin

​4. 通配符和扩展​

$* 和 $@(在双引号中的区别)

典型用途​:

for arg in "$@"; do
    echo "参数: $arg"
done

​5. 其他特殊变量​

$RANDOM

典型用途​:

echo "随机数: $RANDOM"

$SECONDS

典型用途​:

sleep 3
echo "运行时间: $SECONDS 秒"

​总结​

变量作用典型用途
$0脚本名称获取当前脚本名
$1-$9脚本参数处理命令行参数
$#参数个数检查参数数量
$*所有参数(合并)整体处理参数
$@所有参数(独立)循环遍历参数
$?上一条命令的返回值检查命令是否成功
$$当前进程 PID记录进程 ID
$!最后一个后台进程 PID管理后台任务
$_上一个命令的最后一个参数快速引用参数
$RANDOM随机数生成随机值
$SECONDS脚本运行时间计时

这些特殊变量在 ​脚本参数处理、错误检查、进程管理、日志记录​ 等场景中非常有用,熟练掌握它们可以大幅提升 Bash 脚本的编写效率! 

到此这篇关于Bash 脚本中的特殊变量的文章就介绍到这了,更多相关Bash特殊变量内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文