[解決済み] ruby システムコマンドの終了コードチェック
2022-08-21 21:42:51
質問
以下のようなrubyのシステムコールがたくさんありますが、それらの終了コードを同時にチェックして、そのコマンドが失敗した場合にスクリプトを終了させたいと思います。
system("VBoxManage createvm --name test1")
system("ruby test.rb")
のようなものが欲しい。
system("VBoxManage createvm --name test1", 0)
2番目のパラメータが終了コードをチェックし、そのシステムコールが成功したことを確認し、成功しなかった場合はエラーを発生させるか、その種のことを行うようにします。
そんなことできるんですか?
というようなことを試したことがあるのですが、それもうまくいきませんでした。
system("ruby test.rb")
system("echo $?")
または
`ruby test.rb`
exit_code = `echo $?`
if exit_code != 0
raise 'Exit code is not zero'
end
どのように解決するのですか?
からの ドキュメント :
システムリターンズ
true
を返します。false
である。 である。戻り値nil
を返します。
system("unknown command") #=> nil
system("echo foo") #=> true
system("echo foo | grep bar") #=> false
さらに
エラーステータスは
$?
.
system("VBoxManage createvm --invalid-option")
$? #=> #<Process::Status: pid 9926 exit 2>
$?.exitstatus #=> 2
関連
-
[解決済み】Ruby: 特定のバージョンのruby gemをインストールする方法は?
-
[解決済み] プログラムの実行やシステムコマンドの呼び出しはどのように行うのですか?
-
[解決済み] Rubyのswitch文の書き方
-
[解決済み] Rubyで配列に値が存在するかどうかを確認する方法
-
[解決済み] Rubyからシェルコマンドを呼び出す方法
-
[解決済み] Rubyでnilとemptyとblankを理解する方法
-
[解決済み] Rubyのattr_accessorとは何ですか?
-
[解決済み] Windowsのコマンドラインからアプリケーションの終了コードを取得するにはどうすればよいですか?
-
[解決済み] Bashスクリプトで、ある条件が発生したらスクリプト全体を終了させるにはどうしたらいいですか?
-
[解決済み] Rubyで文字列が部分文字列を含むかどうかをチェックする方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Ruby、execとsystemと%x()またはBackticksの違いについて
-
[解決済み] Rubyでsystem()呼び出しの出力を取得する
-
[解決済み] Rubyの文字列の中から"˶‾‾‾˵"を削除するにはどうしたらいいですか?
-
[解決済み] rvm use 2.0.0 --default を実行すると、"Warning! PATH is not properly set up" と表示される。
-
[解決済み] JSONファイルへの正しい書式での書き込み方法
-
[解決済み] Rubyでbeginとendのブロックを使わずにrescueを使うには?
-
[解決済み] ハッシュの配列をハッシュの値でソートするにはどうしたらいいですか?
-
[解決済み] 文字列を正規表現に変換する ruby
-
[解決済み] ルビー 負の数を正の数に変換する?
-
[解決済み] Ruby: selfを拡張する