Проверить, не существует ли символическая ссылка.

Вы можете изменить строку замены sedна -&.

Кроме того, нет необходимости вызывать sedдважды, так как вы можете комбинировать несколько команд с помощью ;.

sed 's/-//; s/./-& /g'

Обратите внимание, что в конце у вас будет пробел, от которого вам, возможно, придется избавиться.

3
14.05.2020, 00:48
1 ответ

Если имя в $1является допустимой символической ссылкой, то проверка -eбудет истинной. Если это неработающая символическая ссылка, то тест -eзавершится ошибкой. Тест также завершится ошибкой, если имя в $1вообще не существует.

Итак, чтобы проверить, является ли $1битой символической ссылкой, или , если она вообще не существует, достаточно использовать

if [ ! -e "$1" ]; then...; fi

Тест, который у вас есть, лучше написать без устаревшего-aкак

if [ ! -e "$1" ] && [ -h "$1" ]; then...; fi

Проверяет, является ли $1существующей неработающей символической ссылкой.

Если вы хотите проверить действительную символическую ссылку, используйте

if [ -e "$1" ] && [ -h "$1" ]; then...; fi
5
28.04.2021, 23:14

Теги

Похожие вопросы