Я пишу скрипт, где у меня есть каталог по умолчанию для вывода данных, или пользователь может указать каталог. Проблема в том, что я не знаю, как это сделать красноречиво. Вот что у меня есть:Удаление дополнительной косой черты, если таковая существует
#!/bin/bash
OUTPUT="$1"
DEFAULT_DIR=/Default/Dir/For/Me
if [ -z "$OUTPUT" ]
then
OUTPUT=.${DEFAULT_DIR}
else
OUTPUT=""${OUTPUT_DIR}""${DEFAULT_DIR}""
fi
echo "$OUTPUT"
Если я это
./script /
я получаю//Default/Dir/For/Me
Если я сделаю это
./script /home
я получаю/home/Default/Dir/For/Me
Если я делаю это
./script /home/
я получаю/home//Default/Dir/For/Me
Есть ли способ сделать это красиво и правильно обработать первый сценарий? Очевидно, что первый сценарий не будет работать, потому что каталог //
не существует.
Помогает ли это? http://stackoverflow.com/questions/4638983/remove-unnecessary-slashes-from-a-given-path-with-bash – trojanfoe
@trojanfoe да, это очень полезно. –
Как насчет трубопровода с помощью 'tr -s"/"'? Он удалит дубликаты слэшей. – fedorqui