что означают флаги -o и -L в bash - PullRequest
0 голосов
/ 05 мая 2011

У меня есть такая часть скрипта bash

если [! -e $ f -o -L $ f]; то

где $ f это имя файла

Я знаю, что -e означает "существовать", но я не могу найти, что -o и -L означает

Ответы [ 3 ]

2 голосов
/ 05 мая 2011

В переводе на английский язык программиста это "if файл ($f) не существует (-e) или (-o) файл ($f) является символической ссылкой (-L), затем ... "

man bash имеет более подробную информацию.

1 голос
/ 05 мая 2011

Хм, это интересно.Сначала у нас есть определение встроенной функции [:

`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::).

Очевидно,здесь подразумеваемое значение является первым (если файл не существует или является ссылкой), но я не уверен, почему это работает.

1 голос
/ 05 мая 2011

-o: Истина, если включена опция оболочки "OPTIONNAME".

-L: True, если ФАЙЛ существует и является символической ссылкой.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...