bashはコマンドを実行すると何も返しませんか?

bashはコマンドを実行すると何も返しませんか?

Bashでバグをテストする方法のガイドを見つけました。つまり、いつ

x='() { :;}; echo VULNERABLE' bash -c x

何も返さず、壊れやすいです。しかし、Cのようにbashが何かを返すことができますが、ユーザーがそれを見ることができない状況はありますか?

ベストアンサー1

はい、終了コードを探していますが、ここではまったく関係ありません。VULNERABLE使用しているbashのバージョンが脆弱な場合は、実行しているテストが端末に印刷されます。表示されない場合はテストに合格しました。

プログラムが必ずしもユーザーに表示されない情報を返す可能性があるのは事実ですが、ここでの質問とは関係ありません。たとえば、bash でプログラムの終了コードを表示するには、次の$?変数を使用します。

$ ls /tmp > /dev/null
$ echo $?
0
$ ls /nonexistent_directory  > /dev/null
ls: cannot access /nonexistent_directory: No such file or directory
$ echo $?
2

したがって、要求されない限り、見えないものを返すことが可能です。しかし、それが実行するテストが失敗する可能性があるという意味ではありません。

おすすめ記事