17

このコードの何が問題なのですか?

CLIENT_BUILD_DIR="~/Desktop/TempDir/"

if [ ! -d $CLIENT_BUILD_DIR ]
then
   {
      mkdir $CLIENT_BUILD_DIR
   }
fi

次のエラーが表示されます: mkdir: ~/Desktop: No such file or directory.

明らかにディレクトリがそこにあり、変数を ~/Desktop/TempDir/ に置き換えるとスクリプトが機能します

4

3 に答える 3

27

引用符は ~ の展開を防ぎます。

使用する:

CLIENT_BUILD_DIR=~/Desktop/TempDir/

if [ ! -d "$CLIENT_BUILD_DIR" ]
then mkdir "$CLIENT_BUILD_DIR"
fi
于 2013-04-18T14:07:09.723 に答える
13

~変数で使用される場合、文字は再解釈されません。

代わりに使用できますCLIENT_BUILD_DIR="$HOME/Desktop/TempDir/"

于 2013-04-18T14:07:07.243 に答える