2017-07-31 5 views
3

"Hi Dude"という名前のファイルの名前を "Hi Bro"に変更します。スペースバー(mac端末)を持つファイルの2ステップコマンドで名前を変更しないでください

私がbashで次のコマンドを実行すると動作します。

mv Hi\ Dude Hi\ Bro 

しかし、私は次の2つのコマンドを実行する場合:

usage: mv [-f | -i | -n] [-v] source target 
mv [-f | -i | -n] [-v] source ... directory 

このための任意のソリューションを:

arg="Hi\ Dude Hi\ Bro" 
mv $arg 

をそれは次のエラーを示していますか?私はこれを別のbashスクリプト用に実装したいと思います。

答えて

2

mvには少なくとも2つの引数(スペースで区切られています)が必要です。あなたがそれらをエスケープすることにより、スペースに特別な意味を与えないためにBashのシグナル伝達されているよう

あなたがmv Hi\ Dude Hi\ BroHi\ DudeHi\ Broを実行する二つの別々の引数として識別されています。 (スペースをエスケープしなかった場合、4つの引数があります)

変数に値を渡したい場合は、以下のように2つの変数を使用します。

これは、mv "Hi Dude" "Hi Bro"と同じです。二重引用符は、単一の単位として内部全体を考慮するbash信号です。だから二重引用符を忘れないでください。それ以外の場合は、mv Hi Dude Hi Broとなります。これはまったく異なるものです。

+1

@Anubisありがとうございました。 :D – Grovile

関連する問題