set
コマンドについて
set
を使用することでシェルの設定の確認や変更ができます。
sample.sh
#! /bin/bash
set -eu
sample.sh
#! /bin/bash -eu
オプションを設定したい場合には-
を記述し、 解除したい場合には+
を記述します。
sample.sh
#! /bin/bash
# 設定
set -eu
# 解除
set +eu
主なオプション
オプション | 説明 |
-a, -o allexport | 新規に作成した変数や関数,値を変更した変数や関数を,以後,自動的にエクスポートする |
-b, -o notify | 終了したバックグラウンド・ジョブのステータスを即座に出力する |
-e, -o errexit | コマンドが0以外のステータスで終了した場合,一部の場合を除いて即座に終了する |
-f,-o noglob | パス名のワイルドカードによる展開(*や?)を無効にする |
-h, -o hashall | コマンドの位置を記憶し,検索時間を短縮する |
-k, -o keyword | キーワードとなる引数をコマンドに対する環境として渡す |
-m, -o monitor | ジョブ制御を有効にする |
-n,-o noexec | コマンドを実行せず,構文エラーだけを確認する |
-o emacs | emacs形式のコマンド行編集インタフェースを有効にする |
-o history | コマンドの実行履歴を有効にする |
-o ignoreof | CTRLキーを押しながらDキーを押しても,シェルを終了しないように設定する。exitコマンドは利用できる |
-o posix | bashの動作をPOSIX 1003.2に準拠させる |
-o vi | vi形式のコマンド行編集インタフェースを有効にする |
-p, -o phiysical | 特権モードを有効にし,ENV変数とBASH_ENV変数を処理しなくなる |
-t, -o onecmd | コマンドを1つ読み込み,実行後,終了する |
-u, -o nounset | 未定義の変数を参照するとエラー・メッセージを表示する |
-v, -o verbose | コマンドを実行する前に入力行を表示する |
-x, -o xtrace | コマンドと引数の展開処理を表示する |
-B, -o braceexpand | シェルのブレース展開を有効にする。ブレース展開では,「L{i,n,u}x}」という文字列を「Lix Lnx Lux」と展開する。ブレース展開は他の6つの展開にさきがけて実行される |
-C, -o noclobber | 既存のファイルに対する出力リダイレクトを禁じる。ただし,「>|」を用いればリダイレクトできる |
-H, -o histexpand | !形式のヒストリ置換を有効にする |
-P, -o physical | ファイルのシンボリック・リンクをたどらない |