标志- 0和-L在bash中是什么意思



我有这样一部分bash脚本

if [!]-e $f -o -L $f];

其中$f是filename

我知道-e表示"存在",但我找不到-o和-L是什么意思

翻译成程序员英语,它是" if文件($f)不存在(-e)或(-o)文件($f)是一个符号链接(-L),然后…"

man bash有更多细节

-o:如果shell选项"OPTIONNAME"被启用,则为True。

-L:如果FILE存在并且是一个符号链接,则为True。

http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_07_01.html

嗯,这很有趣。我们首先有[的内置定义:

`EXPR1 -o EXPR2'
      True if either EXPR1 or EXPR2 is true.

…然后我们有条件表达式的定义用于这个内置代码:

`-o OPTNAME'
     True if the shell option OPTNAME is enabled.  The list of options
     appears in the description of the `-o' option to the `set' builtin
     (*note The Set Builtin::).

显然这里的意思是第一个(如果文件不存在或是一个链接),但我不确定为什么这工作

相关内容

  • 没有找到相关文章