2016-06-25 8 views
1
myDir = 'apple' 

上記の変数がある場合、コマンド内でどのような機能を使用できますか?コマンド内のBash代入変数

明らかにls /home/$myDirfruitが機能しないので、上記の変数を使用してls /home/applefruitを行うにはどうすればよいですか?(私はそれが何らかの置換のタイプだと推測しています。

答えて

2

まず、変数の宣言は正しくありません。宣言で=周りにスペースを入れないでなければなりません:myDirfruitだけではなくmyDirの変数名として扱われているので、

myDir='apple' 

今、ls /home/$myDirfruitは動作しませんでした。あなたは名前が有効な変数名構成文字が続いているときに、変数名を囲む{}を使用する必要があります:あなたは、変数名にスペースを持っている場合にも

ls /home/applefruit 

ls /home/${myDir}fruit 

はに拡大されるだろう例えばmyDir='foo bar'は、変数の前後に引用符を使用します。括弧をドロップするだけで、 `$ myDir`を引用するときだけ、完全を期すため

ls /home/"${myDir}"fruit 
+2

を、引用符で十分です。 'ls/home /" $ myDir "fruit'です。一般に、中括弧はパラメータを拡張する標準的な方法ですが、パラメータの名前があいまいでない場合は削除される可能性があります。 – chepner

関連する問題