マニュアルページを読みましたが、bashオプションの目的を理解していませんonecmd
。このコマンドを使用すると、set -o onecmd
シェルはすぐにシャットダウンされます。私の期待は、終了する前にコマンドをもう1つ入力するのを待つということでしたが、そのようなことは起こりませんでした。
もしそうなら、このオプションはexit
コマンドと同じですか?
Bashがこのオプションを提供するのはなぜですか?
誰かがこのオプションを正しく使用する方法の例を教えてください。
ベストアンサー1
理由はわかりませんが、ここのようにシェルを起動するときにコマンドラインでオプションを設定できることに注意してください。内部シェルはコマンドを読み取り、終了します。
bash$ PS1='onecmd$ ' bash -t
onecmd$ echo moi;
moi
bash$
そして、1つのコマンドを読んだ後、実際には終了しませんが、少なくとも1つの完全なコマンドを読んで実行します。ワイヤー。これは両方のコマンドと同じです。
bash$ PS1='onecmd$ ' bash -t
onecmd$ echo moi; echo hei
moi
hei
bash$
もちろん、例を使用するか、&&
コマンドセット全体をラップすることもif true; then ... fi
機能します。