2012-03-04 8 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から変数testを設定し、それをファイルtestfileで使用することです。basenameはどのように変数に入れますか?

答えて

21

コマンド置換$(...)メカニズム使用:あなたはまた、バッククォートを使用することができます

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

を、しかし、(彼らは巣など$(...)表記をしない主な理由は)これらは、現代のスクリプトで推奨されていません。

test=`basename "$file" .deb` 

他の人のスクリプトを解釈するために逆引用符を知る必要があります。あなた自身でそれらを使用すべきではありません。

"$file"を引用符で囲んでください。これにより、ファイル名のスペースが正しく処理されます。

+0

ありがとうございました! – Intecpsp

関連する問題