LinuxMac 下编程,总会遇到运行命令时有一堆参数要输入,把这些参数写进 Bash 文件是一个很不错的选择,Bash 总是边用边学,有一些小问题记在这里方便查阅。

1. 判断和赋值

判断和赋值都可以用一个 = 来实现,其中,判断句 = 前后一定要有空格,而赋值语句 = 前后不能有空格。例子:

if [[ "$OSTYPE" = "linux-gnu" ]]; then
    fonts_dir='/usr/share/fonts/'
else
    fonts_dir='/Library/Fonts/'
fi

当然,为了方便阅读,判断句我习惯用 == 来表示。

2. 命令行参数

接受命令行传参用 $1, $2, $3$0 是本 Bash 的文件名。

判断字符串相等,= 前后要空格,[] 之间也要空格,$1 要用引号框起来,为了处理 $1 为空的情况。

if [ "$1" == "clean" ]; then
    echo [tsk] Clean Project.
else
    echo [tsk] Compile Project.
fi