10

私はこのようなコードを持っています

#!/bin/bash 
DIR="test_dir/";
if [! -d "$DIR"]; then
    # If it doesn't create it
    mkdir $DIR
fi

しかし、なぜそれを実行すると、次のようになりました:

./mycode.sh: line 16: [!: command not found

それを行う正しい方法は何ですか?

4

3 に答える 3

27

[ と ! の間にスペースを追加します。そして前に ] 同様に。

#!/bin/bash 
DIR="test_dir/";
if [ ! -d "$DIR" ]; then
    # If it doesn't create it
    mkdir $DIR
fi

変数を引用符で囲むこともお勧めします。

    mkdir "$DIR"
于 2013-08-08T06:56:21.963 に答える
10

いくつかのスペースを追加します:

if [ ! -d "$DIR" ]; then
#   ^           ^
于 2013-08-08T06:56:31.297 に答える
1

また、次のように言うだけで試みることもできます。

test -d "${dir}" || mkdir "${dir}"

ディレクトリが存在しない場合、これによりディレクトリが作成されます。

于 2013-08-08T07:03:42.890 に答える