LINUX.ORG.RU

bash. опция -n

 ,


0

1
LOG_DIR=/var/log
ROOT_UID=0
LINES=50
E_XCD=66
E_NOTROOT=67

if [ "$UID" -ne "$ROOT_UID" ]
then
echo "Для работы сценария требуются права root."
exit $E_NOTROOT
fi

if [ -n "$1" ]

# Проверка наличия аргумента командной строки.
then

lines=$1
else
lines=$LINES # Значение по-умолчанию, если число не задано в командной строке
fi

Последняя конструкция if. В условиях if указан ключ -n. Кто возьмется объяснить, как это работает и читается?



Последнее исправление: beastie (всего исправлений: 3)

Все, нашел. Всем спасибо

-n строка не «пустая».

Оператор -n требует, чтобы строка была заключена в кавычки внутри квадратных скобок. Как правило, проверка строк, не заключенных в кавычки, оператором ! -z, или просто указание строки без кавычек внутри квадратных скобок, проходит нормально, однако это небезопасная, с точки зрения отказоустойчивости, практика. Всегда заключайте проверяемую строку в кавычки.

gats
() автор топика

Вот тут хороший пример использования. Сравнивает строку с null, притом переменная должна быть в кавычках, иначе результат может быть неожиданный.

conformist ★★★
()
Ответ на: комментарий от gats

Сам спросил, сам ответил. ABS Guide. На будущее.

IPR ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.