#!/bin/bash
if [!-d /home/mlzboy/b2c2/shared/db]; then
mkdir -p /home/mlzboy/b2c2/shared/db;
fi;
這似乎不起作用。誰能幫忙?如何使用Bash創建文件夾(如果它尚不存在)?
#!/bin/bash
if [!-d /home/mlzboy/b2c2/shared/db]; then
mkdir -p /home/mlzboy/b2c2/shared/db;
fi;
這似乎不起作用。誰能幫忙?如何使用Bash創建文件夾(如果它尚不存在)?
您需要[
和]
括號內位:
#!/bin/bash
if [ ! -d /home/mlzboy/b2c2/shared/db ]
then
mkdir -p /home/mlzboy/b2c2/shared/db
fi
我認爲你應該重新格式化您的代碼位:
#!/bin/bash
if [ ! -d /home/mlzboy/b2c2/shared/db ]; then
mkdir -p /home/mlzboy/b2c2/shared/db;
fi;
首先,在bash 「[」 僅僅是一個命令,它需要字符串「]」作爲最後一個參數,所以在右括號之前的空格(以及「!」和「-d」之間也需要兩個單獨的參數)非常重要:
if [ ! -d /home/mlzboy/b2c2/shared/db ]; then
mkdir -p /home/mlzboy/b2c2/shared/db;
fi
其次,由於您正在使用-p切換到mkdir
,所以此檢查無用,因爲這首先是什麼。只寫:
mkdir -p /home/mlzboy/b2c2/shared/db;
那就是它。
實際上不需要檢查它是否存在。既然你已經想創建它,如果它存在,只是MKDIR會做
mkdir -p /home/mlzboy/b2c2/shared/db
簡單地做:如果該文件夾已經存在
mkdir /path/to/your/potentially/existing/folder
的mkdir將拋出一個錯誤。要忽略錯誤,請寫:
mkdir -p /path/to/your/potentially/existing/folder
不需要做任何檢查或類似的事情。
更清晰的方式,利用shell邏輯運算符的快捷方式評估。只有當左側爲真時,纔會執行運算符的右側。
[ ! -d /home/mlzboy/b2c2/shared/db ] && mkdir -p /home/mlzboy/b2c2/shared/db
mmh,不是更乾淨:只是更短。 如果遇到這種說法,很難理解這種說法的含義。 – 2014-07-25 07:46:50
爲什麼你有分號? – ADTC 2016-04-13 11:05:19