Linux Shell 的一些零碎姿势

最近搞工程化,需要写不少 shell 脚本,零零碎碎看了些文档,对比之前看到就头晕眼花,现在总算可以磕磕绊绊写出一些逻辑了。这里随手记录一些自己碰到的问题及姿势。

  1. What’s the difference between [ and [[ in Bash?

这个问题我之前也困惑了很久,但一直没去找文档,只是 copy 别人的写法修改,今天刚好看到有对这个问题的回答,很详细:
https://stackoverflow.com/a/3427931/4435085

  1. 一些常用判断写法
# 变量是否存在
if [[ -n SOMETHIN ]]; then
    echo "SOMETHING IS SET"
else 
    echo "SOMETHING IS NOT SET"
fi
# 变量是否等于指定值
if [[ $SOMETHING = "hello" ]];then
    echo "equal hello"
fi
# 正则匹配
if [[ $SOMETHING =~ [0-9]+ ]];then
    echo "have digit"
fi