Как мне поставить basename в переменную? - PullRequest
12 голосов
/ 04 марта 2012
#!/bin/bash
file=debian.deb
test=basename $file .deb
DP="blah/blah/$test/$test.php"
read -p "[$DP]: " DPREPLY
DPREPLY=${DPREPLY:-$DP}
echo "Blah is set to $DPREPLY"
echo $DPREPLY>>testfile

Итак, я пытаюсь установить тест переменной из файла переменной и использовать его в файле теста.

1 Ответ

27 голосов
/ 04 марта 2012

Используйте механизм подстановки команд $(...):

test=$(basename "$file" .deb)

Вы также можете использовать обратные кавычки, но они не рекомендуются в современных сценариях (в основном потому, что они не вкладываются так же, как $(...))нотация).

test=`basename "$file" .deb`

Вы должны знать о кавычках, чтобы интерпретировать чужие сценарии;вы не должны использовать их по своему усмотрению.

Обратите внимание на использование кавычек вокруг "$file";это гарантирует, что пробелы в именах файлов обрабатываются правильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...