のらブログ

sadanoraが思ったことを書きます

【Linux】bashのオプション

  • bashはシェル自信がもつ様々な機能を利用するためにオプションを指定することができる
  • オプションは「オン」または「オフ」の値をとり、機能のオンオフを切り替えられる
  • オプションの設定にはsetshoptコマンドを使う
  • シェルスクリプトでしか意味を持たないオプションもある

setコマンド

  • -oでオン +oでオフ

書式

set -o/+o <オプション名>

ignoreeeofオプションをオンに設定する例

$ set -o ignoreeof
#↓ctrl+dを入力
$
シェルから脱出するには "logout"を使用してください。
$

ignoreeofはctrl+dでシェルを終了しないオプション。誤操作での終了を防げる。

setコマンドのオプション一例

オプション名 内容
ignoreeof ctrl+dでシェルを終了しない
noclobber 既に存在するファイルをリダイレクトで上書きしない
noglob パス名展開を無効にする。*などがシェルに解釈されずそのまま*となる

shoptコマンド

  • 指定したオプションを-sでオンに、-uでオフにする
  • shoptで指定するオプション名はsetで指定するオプション名とは異なる

書式

shopt -s/-u <オプション名>

shoptコマンドのオプション一例

オプション名 内容
autocd ディレクトリ名のコマンドを実行すると、それがcdコマンドの引き数に指定されたものとして実行される
dotglob *や?を使ったパス名展開の結果に、.で始まるファイルも含める
cdspell cdコマンド実行時、ディレクトリのちょっとしたミスタイプが自動修正される
globstar パス名展開で**というパターンを使うと、サブディレクトリまで含めたすべてのファイルにマッチする
histappend bashを終了するとき、履歴ファイルにコマンド履歴を追記し、上書きしない