【LPIC】setコマンドを使用してシェルオプションを設定する

set コマンドを使用することで、現在のシェルにシェルオプションやパラメータを設定することができる。
現在のシェルオプションを表示する。
現在のシェルに設定されているオプション(シェルオプション)を表示させるには、
set -o
と実行する。環境によっても異なるが、このように表示される。

シェルオプションについて
前項の中で、例えば、histexpandは !番号によるコマンドの実行が有効になっている。(前項のリストでonになっているものは有効化、offになっているものは無効化されている)
例えば、history コマンドを実行して、

このように表示される場合、99971番目のset -oコマンドを実行するには
!99971
とコマンドを打つと実行できるようになっている。
代表的なシェルオプションの一覧
| シェルオプション名 | 意味 | 
|---|---|
| histexpand | !番号と打つことで、過去のコマンドを再実行できる | 
| noclobber | リダイレクションによる既存ファイルへの上書きを禁止 | 
| ignoreeof | Ctrl+Dでシェルを終了しないようにする | 
| emacs | emacs風のキーバインドにする | 
| vi | vi風のキーバインドにする | 
シェルオプションを有効化、無効化してみる
set -o シェルオプション名
と実行することで、指定したシェルオプションを有効化できる。
無効化したい場合は
set +o シェルオプション名
で実現できる。試しに、ignoreeofを有効化してみる。
set -o ignoreeof

この状態で、Ctrl+Dを押すとこのように表示される。

【補足1】ignoreeofを有効化する活用例
例えば、Pythonのインタラクティブシェルなどから、離脱したい時、Ctrl+Dを押すが、うっかり2回押してしまうとシェルまで終了してしまう。
そういう時、事前にignoreeofを有効化しておけば、2度押してシェルまで終了してしまうということが無くなる。
