Bcdスクリプトの「XML 5.1 Final Fields」など、「cd」を使用してスペースのあるディレクトリにアクセスする方法
私は試した cd XML 5.1 Final Fields
しかし、それはNo such file or directory
エラー。
これはスクリプトです:
#! /bin/bash
xmlfolder="XML/ \/5.1/ \/Final/ \/Fields"
xmlpath="/home/george/Desktop/m5u/test/$xmlfolder"
cd $xmlpath
ls /home/george/Desktop/m5u/test/
XML 5.1 Final Fields
~/Desktop/m5u/test$ ll
drwxr-xr-x 9 george george 4096 Feb 18 12:44 XML 5.1 Final Fields
これは、スクリプトを実行したときに表示されるエラーです
line 5: cd: /home/george/Desktop/m5u/test/XML\: No such file or directory
変数xmlfolder
が間違っています。そのはず
xmlfolder=XML\ 5.1\ Final\ Fields
または= "XML 5.1最終フィールド"
パスに/
は必要ありません-それはただ一つのフォルダーです。 ""
も使用している場合は、\
も必要ありません。一つを選ぶ。
ls
コマンドを使用して編集しているため、フォルダー名の末尾にスペースが含まれている可能性があります。 nautilusで名前を変更するか、mv
コマンドを使用して、スペースを削除することをお勧めします。
スペースを保持したい場合、変数名は次のようになります。
xmlfolder=XML\ 5.1\ Final\ Fields\
または
xmlfolder="XML 5.1 Final Fields "
\
文字で最初のオプションを使用する場合、""
で変数を参照する必要があることに注意してください。つまり、"$xmlfolder"
です。
このエラーは、cd
がパスに不満であることを示唆しています。
これからcd
コマンドを変更してみてください
cd $xmlpath
に
cd "$xmlpath"
正直に言うと、bashスクリプトでcd
を使用する必要はありません。すべてを絶対パスで参照するだけです。
要約すると、xmlfolder=
行はxmlfolder=XML\ 5.1\ Final\ Fields
になり、cd
行はcd "xmlpath"
になります。