Я хочу проверить условие, если переменная имеет значение null в fish (дружественная интерактивная оболочка).
if test "$argv" = null
# do something...
else
# do something else...
Я не знаю конкретно слово "рыба", но знаю стандартный "тест".
Попробуйте:
test "$argv" = ""
или
test "x$argv" = x
или
test -z "$argv"
Это предполагает, что вы хотите проверить, что он не установлен или пуст. Если вам нужен только один из этих двух случаев, вам понадобятся модификаторы расширения переменных оболочки.
Обратите внимание, что второй пример часто встречается в коде, пытающемся обеспечить высокую переносимость. Это позволяет избежать пустых параметров, так как иногда кажется, что они теряются.
Третий пример — это опция test
для проверки наличия пустой строки.
Я тоже не очень хорошо разбираюсь в fish, но, как и в других оболочках, в нем тоже есть различие между неопределенной переменной и пустой.
Из часто задаваемых вопросов следует, что вы можете проверить, определена ли переменная с помощью set -q var
, и использовать string length -q
, чтобы увидеть, содержит ли она не -пустую строку.
Например, чтобы увидеть, определен ли первый аргумент скрипта или пуст или не -пуст:
#!/usr/bin/fish
if not set -q argv[1]
echo 'not defined'
else if not string length -q -- "$argv[1]"
echo 'defined but empty'
else
echo 'defined and non-empty'
end
Если вас не волнует различие между неопределенной и определенной, но пустой переменной, просто пропустите первый тест, неопределенное значение будет расширено до пустой строки в двойных -кавычках.