Bash
防止 xargs 因錯誤而退出
根據手冊頁,如果執行行之一以 255 錯誤退出,xargs 將退出:
如果命令的任何呼叫以狀態 255 退出,xargs 將立即停止而不讀取任何進一步的輸入。發生這種情況時,會在 stderr 上發出錯誤消息。
我怎樣才能讓 xargs不這樣做?
我有一個 1500 行左右的批處理作業要執行,一次 50 行。我發現它總是死在某條線上,並且沒有完成工作。不好!
一個更好的問題,描述我正在嘗試做的問題,是:
如何執行一個 1500 行的批處理腳本,一次 50 行,這樣它就不會在中間退出作業,並且輸出被擷取到某種日誌文件中?
您可以用另一個簡單的 bash 腳本包裝 perl 腳本:
#!/bin/bash real-command "$@" || exit 0
這將呼叫real-command,將您傳遞給此fake-command的所有參數傳遞給它,並且它將始終返回 0 退出程式碼(這意味著它始終成功)並且 xargs 永遠不會停止。
類似於
larsks
answer 但更明確:xargs sh -c "somecommand || true"