Bash

執行一系列類似任務時如何確定程序是否成功?

  • November 14, 2015

我正在編寫一系列共享相同父命令的 CLI 工具,類似於git.

program verb OPTIONS

其中一個動作動詞 ,install被設計為git clone與指定的 URL 一樣多的儲存庫。

確定程序成功或失敗的穩健且類似於 UNIX 的邏輯方法是什麼?

  1. 好的 URL > 0 → EXIT_SUCCESS
  2. 錯誤的 URL == 0 → EXIT_SUCCESS
  3. 將有效 URL 的數量寫入標準輸出,然後 (1) 或 (2)
  4. 返回有效 URL 的數量。
  5. 其他?

您的程序至少應該在成功時退出(3) EXIT_SUCCESS(即 0),並且EXIT_FAILURE在失敗時可能(即 1)。您可以複製(或受其啟發)FreeBSD sysexits.h以獲得更多失敗程式碼(但我不確定是否值得付出努力)。

對於任何類型的故障,不要忘記向stderr(或通過syslog(3) )提供一些消息。根據您的描述,git clone即使您的子命令沒有一個(在許多)儲存庫中install也應該是失敗的。

使用者可能會做一些更正操作(例如更正錯誤 URL 的拼寫),然後重複相同的命令,因此您可能希望它是冪等的。

不要忘記一個--help選項,並記錄 0 和 1 之外的任何退出程式碼。

引用自:https://unix.stackexchange.com/questions/241774