我有一個 find 命令作為腳本的一部分,並將值匯出到變數中,如下所示
export value1="'find /app/new1 -name '*service.sh*'"
經過測試我意識到,在少數主機上,目錄如下所示
/sbclocal/app/new1
我如何檢查並將兩者傳遞為相同的值?
當我找到這個腳本並稍後停止或啟動時執行。
答案1
如果我對問題的理解是正確的,那麼實現理想狀態的方法就很少。
find
支援指定多個路徑。所以這樣說也沒什麼大不了的:export value1="$(find /app/new1 /sbclocal/app/new1 -name '*service.sh*')"
如果缺少一個目錄,這將產生一條錯誤訊息,但是(取決於您的方式)它通常不會影響您的腳本。
將兩個命令傳遞給值:
export value1="$(find /app/new1 -name '*service.sh*' && find /sbclocal/app/new1 -name '*service.sh*')"
此選項提供的答案更接近您的問題(將兩個命令傳遞給同一變數),但看起來並不是更好的解決方案。
支票方式:
export value1="$(for dir in /app/new1 /sbclocal/app/new1; do [ -d $dir ] && find $dir -name '*service.sh*'; done)"