我正在查看主目录中的“.profile”文件,并看到该IF
语句使用了不同的选项:
if [ -n "$BASH_VERSION" ]; then...
...
if [ -f "$HOME/.bashrc" ]; then...
...
if [ -d "$HOME/bin" ] ; then...
...
这里以及其他 bash 脚本中-n
-f
和选项的含义和用途是什么?-d
答案1
所有用于 if 子句的 BASH 选项均可在CONDITIONAL EXPRESSIONS
文档部分 ( man bash
) 中找到。
引用如下:
-d 文件
如果文件存在并且是目录则为真。
-f 文件
如果文件存在并且是常规文件则为真。
-n 字符串
如果字符串的长度不为零,则为真。
答案2
-f
和-d
是文件测试运算符选项,即:
-f
文件是常规文件,而不是目录
-d
文件是目录
-n
是比较运算符选项。当选项后面的字符串为 时,它返回“true” not null
。