2012-03-04 2 views
7
#!/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 

Так что я пытаюсь установить параметр test из файла переменных и использовать его в файле файла.Как поместить basename в переменную?

ответ

21

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

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

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

test=`basename "$file" .deb` 

Для того, чтобы интерпретировать чужие сценарии, вам нужно знать о backquotes; вы не должны использовать их самостоятельно.

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

+0

Спасибо, что сработали! – Intecpsp

Смежные вопросы