2013-05-16 55 views
0

我需要檢查創建和新的目錄和打印錯誤離子不能有人從他們像下面的改變DIR:如何使if語句

[ mkdir tmp && cd tmp ] || echo "error" 

但我發現了以下錯誤:

[: missing `]' 
+0

如果'mkdir'失敗,將打印錯誤消息。你的回聲是多餘的,並寫入錯誤的地方。錯誤消息屬於stderr。 –

回答

1

&&不允許一個test命令的括號內,因此丟失的]bash認爲應該是tmp&&之間的一個。

你的命令的正確形式是

mkdir tmp && cd temp || echo "error" 

如果mkdir失敗(或cdmkdir成功後失敗),然後執行echo。不需要test/[命令。

0
[ -d tmp ] || mkdir tmp 

可能是你在找什麼。這將檢查目錄的存在,然後創建該目錄(如果該目錄不存在)。

[ -d tmp ] || mkdir tmp || echo "failure" 

如果mkdir失敗,將顯示一條消息。

+0

抱歉,請更新topit – Erik

0

或更詳細更清晰,但版本:

if [ ! -d temp ] # if there is no directory 
then 
    mkdir temp 
fi