Вы можете изменить строку замены sed
на -&
.
Кроме того, нет необходимости вызывать sed
дважды, так как вы можете комбинировать несколько команд с помощью ;
.
sed 's/-//; s/./-& /g'
Обратите внимание, что в конце у вас будет пробел, от которого вам, возможно, придется избавиться.
Если имя в $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