Я пытаюсь понять некоторую последовательность сценариев bash, и на одном из шагов есть условие:
if [ "x/usr/bin" != "x" ]; then <do some actions>
Что означает следующее?
x
в x / usr / bin
x
в правой части уравнения тестирования? Это всем известный башизм.
Если переменная (скажем, $ foo
в этом примере) может быть пустой или может содержать значение,
Если foo = ""
, то
if [ "$foo" = "bar" ]
заменяется на
if [ = "bar" ]
синтаксическая ошибка: - (
Если используется
if [ "x$foo" = "xbar" ]
, он заменяется на
if [ "x" = "xbar" ]
Синтаксическая ошибка отсутствует.
Есть более эффективные способы проверки пустых переменных, например
if [[ -n "$foo" ]]