编写Shell脚本时的技巧

获取当前脚本的目录

1
dir=$(cd $(dirname $0);pwd)

让输出有颜色

1
2
3
BOLD_RED='\033[1;31m'
RESET='\033[0m'
echo -e "${BOLD_RED}ERROR${RESET}: ./calculate_average_$fork.sh does not exist." >&2

以上代码会让 ERROR 以红色字样输出,但后面的还是默认颜色的白色颜色。

执行命令之前先打印命令本身

我希望用户能够准确理解脚本在每个步骤中的作用。为了实现这一点,我实现了一个函数,在执行每个命令之前打印它:

1
2
3
4
5
6
7
function print_and_execute() {
echo "+ $@" >&2
"$@"
}

## 调用时:
print_and_execute git add .

获取当前时分

1
date +"%H:%M"

将实际爱你保存到变量中:

1
2
current_time=$(date +"%H:%M")
echo "当前时间是 $current_time"

其他常见时间格式:

1
2
date +"%I:%M %p"  # 12 小时制 + AM/PM 标记(例如 02:30 PM)
date +"%H%M" # 紧凑格式(例如 1430)

指定时区:

1
TZ='Asia/Shanghai' date +"%H:%M"  # 获取上海时区的当前时间

编写Shell脚本时的技巧
https://sunshinechen.cn/2024/11/13/编写Shell脚本时的技巧/
作者
sunshine
发布于
2024年11月13日
许可协议