Параметр "-h" в условии сценария оболочки "while"

Параметр "-h" в условии сценария оболочки "while"

Я пытаюсь понять уже написанный скрипт Shell и столкнулся со следующей строкой.

while [ -h "$SOURCE" ];

Мне нужно знать значение-час

Дополнительная информация:

$SOURCE = ./my-script.sh

решение1

Это -hне опция ключевого whileслова, а утилиты [test). Значение опции описано в руководстве для test, [или вашей оболочки (так как это обычно встроенные утилиты), см man test. .

Этостандартныйвариант для testи [, а также стандарт POSIXописывает этовот так:

-h pathname

True, если pathnameразрешается в существующую запись каталога для символической ссылки. False, если pathnameне может быть разрешен, или если pathnameразрешается в существующую запись каталога для файла, который не является символической ссылкой. Если последний компонент pathnameявляется символической ссылкой, эта символическая ссылка не выполняется.

Короче говоря, это оценивается какистинныйесли заданный путь является символической ссылкой, то ваш whileцикл будет повторяться до тех пор, пока значение в переменной SOURCEне перестанет ссылаться на символическую ссылку.

Связанный контент