![](/img/trans.png)
[英]How to get script directory (not current directory) in shell (sh) script (not bash)?
[英]How to get error and their codes in drush in a shell sh script?
我正在shell腳本sh中啟動一些drush命令。 如果命令已正確終止,我如何獲得? 而且,如果出現錯誤,我該如何獲取錯誤並將其呈現給執行腳本的用戶?
正如我在第一條評論中所說,如果將shell腳本與drush命令放在一起,執行該腳本的用戶將看到drush寫入控制台的所有消息。 但是,如果您想編寫一個更復雜的腳本,即檢查錯誤等,那么這是一個簡短的示例,可以幫助您入門:
msg=$(drush blah 2>&1)
if [[ "$msg" =~ error* ]]
then
echo "we had an error!"
else
echo "success"
fi
msg=$(drush cc all 2>&1)
echo $msg
注意:此腳本假定您具有bash shell。
構造$(command)
用於將stdout傳遞給變量。 由於drush將錯誤消息通過管道傳遞到stderr,因此我們還需要在drush命令后綴2>&1
,該命令是將stderr重定向到stdout的命令。 然后, if
檢查基本上是$ msg變量中“錯誤”的子字符串檢查。
這是Bash編程的好資源:
http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.html
希望這可以幫助。
===========編輯=============
如果您在Bourne Shell中,則可以使用以下命令將輸出重定向到變量:
msg=`drush cc all 2>&1`
您應該能夠通過執行echo $SHELL
來查看正在使用的shell。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.