簡體   English   中英

如何在shell sh腳本中匆忙獲取錯誤及其代碼?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM