跳转到内容
Go back

Bash 脚本拾遗

更新于:

Bash 脚本拾遗

报错优化

平时用 bash 写脚本,可以设置 set -e 在脚本执行失败的地方终止脚本。

set -e 的作用:当脚本中任何命令返回非零状态(即执行失败)时,立即终止脚本执行,有助于防止错误继续传播,让脚本在第一个错误处停止

报错优化技巧

将 trap 命令放在 set -e 之后,脚本主体之前

trap 'echo "Exit status $? at line $LINENO from: $BASH_COMMAND"' ERR

trap 'echo "错误:退出状态 $? 在第 $LINENO 行,命令: $BASH_COMMAND"' ERR

使用示例:

#!/bin/bash
set -e  # 在错误时退出

# 设置错误处理
trap 'echo "错误:退出状态 $? 在第 $LINENO 行,命令: $BASH_COMMAND"' ERR

# 示例命令
echo "脚本开始"
ls /不存在的目录  # 这会失败并触发 trap
echo "这行不会执行"

内置变量

$0: 脚本本身文件名称
$1: 命令行第一个参数,$2为第二个,以此类推
$*: 所有参数列表
$@: 所有参数列表
$#: 参数个数
$$: 脚本运行时的PID
$?: 脚本退出码

$@$* 区别

例如执行 test.sh 1 2 3

$* 表示 "1 2 3"
$@ 表示 "1" "2" "3"

二者没有被引号括起来时是一样的都为 “1 2 3”,只有当被引号括起来后才表现出差异。

附录

参考资料


分享文章至:

Previous Post
Gitea Actions Runtime 通用 Prompt 模板
Next Post
诗词摘录