概要
書籍 Build Awesome Command-Line Applications in Ruby2
章
Play Well with Others
詳細
exit code は一つの数値しか取れません。
ビットマスクとして扱うことで各ビットに意味を持たせることができます、
サンプルコード
引数に応じて exit code を設定します。
param = ARGV.first exit_status = 0b0000 case param.to_i when 1 # 警告1を設定 exit_status |= 0b0001 when 2 # 警告2を設定 exit_status |= 0b0010 when 3 # 警告1を設定 exit_status |= 0b0001 # 警告2を設定 exit_status |= 0b0010 end exit exit_status
出力
$ ruby 1.rb 1;echo $? 1 $ ruby 1.rb 2;echo $? 2 $ ruby 1.rb 3;echo $? 3 $ ruby 1.rb 4;echo $? 0