我想知道如何分配變量,如果裏面塊shell腳本..如何分配一個變量中,如果在shell腳本條件
下面是我的代碼..
if [[ -z "$MMBOX_PATH" || -z "$BACKUP_PATH" || -z "$REMOTE_SERVER" || -z "$LOG_PATH" ]]
then
echo -e "Must Provide All Required Paths [$FLAG is Empty].."
exit 1
fi
的上面的代碼會運行,只要它發現空變量,但我也想知道哪個變量是空的(例如,在上面的代碼假設如果LOG_PATH變量是空的,那麼它應該顯示在回波輸出中而不是$ FLAG)
I嘗試以下代碼..
if [[ `FLAG='MMBOX_PATH'` && -z "$MMBOX_PATH" || `FLAG='BACKUP_PATH'` && -z "$BACKUP_PATH" || `FLAG='REMOTE_SERVER'` && -z "$REMOTE_SERVER" || `FLAG='LOG_PATH'` && -z "$LOG_PATH" ]]
then
echo -e "Must Provide All Required Paths [$FLAG is Empty].."
exit 1
fi
但上面的代碼返回false,因此它不會打印回顯中的內容。
我也試圖保持標誌變量的條件執行過,但每次都在輸出返回「無」
if FLAG='MMBOX_PATH' && [[ -z "$MMBOX_PATH" ]]
then
echo -e "Must Provide All Required Paths [$FLAG is Empty].."
exit 1
fi
在上述情況下,我得到FLAG =「MMBOX_PATH」但如果我再添加一個條件到如果不打印(也就是說,如果我檢查同樣的事情BACKUP_PATH,remote_server的..)
if FLAG='MMBOX_PATH' && [[ -z "$MMBOX_PATH" ]] && FLAG='LOG_PATH' && [[ -z "$LOG_PATH" ]]
then
echo -e "Must Provide All Required Paths [$FLAG is Empty].."
exit 1
fi
在這種情況下沒有被打印即使MMBOX_PATH現在和LOG_PATH空。
注意:使用if條件每個變量都可以知道哪個變量是空的,但我不想用if-else條件擴展我的行我只是想知道,如果塊本身如何分配變量並打印一次條件爲真。
任何人都可以幫助我如何獲得空變量..? (/ bin/bash)
使用case語句代替 – 123
但這也會使代碼冗長。我必須爲每個變量編寫代碼 'case「$ MMBOX_PATH」in 「」)echo「MMBOX EMPTY」;; esac' 我只是想在塊內部使用,因爲我們已經在測試一個變量是否爲空或者在那段時間內沒有測試過,只是我想分配一些其他變量供以後使用。 –