1. ホーム
  2. スクリプト・コラム
  3. リナックスシェル

シェルでのsetコマンドの使い方を説明します

2022-02-08 13:21:35

構文

                                GLint y,

                                GLsizei width,

                                GLsizei height,

                                GLenum format,

                                GLenum type,

                                GLvoid * data);


機能説明

setコマンドは、シェルの現在の実行方法を設定し、必要に応じてシェル変数の値を設定または表示するために使用することができます。オプションを1つ指定するとシェルの共通機能を設定し、オプションの後に-oを使用すると特殊機能をオンにし、+oを使用すると特殊機能をオフにします。引数なしの set コマンドは、現在のシェルのすべての変数を表示し、不正なオプションに遭遇しない限り、常に true を返します。

パラメータの説明

オプションのパラメータとその説明は以下の通りです。

<テーブル パラメータ 説明 -a 環境変数に出力するために、変更した変数をマークします -b 中断されたバックグラウンドプログラムを直ちに実行状態に復帰させる -d シェルプリセットは、使用したコマンドをハッシュテーブルで記憶して、コマンドの実行を高速化します。を解除するには、-d 引数を使用します。 -e コマンドが0以外の値を返した場合、直ちにシェルを終了します。 -f ワイルドカードの使用を廃止する -h 機能の位置を自動で記録する -k コマンドで与えられた引数は、このコマンドの環境変数として扱われます -l forループ用の変数名を記録する -m モニタリングモードの使用 -n 命令を読み込むだけで、実際には実行しないテストモード -p 優先モード開始 -P Pパラメータを有効にすると、シンボリックリンクの代わりに実際のファイルまたはディレクトリでコマンドが実行されます -t 以降のコマンドを実行後、シェルを終了します。 -u 実行中に未定義の変数が使用された場合にエラーメッセージを表示する -v シェルが読み込んだ入力値を表示する -H シェル ヒストリに記録されているコマンドを実行するには、"!" と <command number> を使用します。 -x コマンドを実行すると、まずコマンドとその下の引数が表示されます +<parameters> セットが開始されていたパラメータをキャンセルします。引数とは異なります。 -o オプション 多くの特殊な属性がありますが、そのほとんどは上記のオプション・パラメーターと同じ機能を持つため、ここではリストアップしていません

キーパラメータ

eと-xは、通常シェルコードのロジックの前に書かれる引数で、一緒に使うことでデバッグの時間を大幅に短縮できます。

  • set -x は、シェルスクリプトの各行の内容を実行時に出力します。これにより、現在実行されている内容を確認することができ、関係する変数が実際の値に置き換えられます。
  • set -e は、他の言語における "throwing an exception" のように、エラー時にプログラムを終了させます。(正確には、すべてのエラーがプログラムを終了させるわけではありません。以下の注意を参照してください)

注意: set -e がプログラムを終了させる条件は複雑で、man bash に様々なシナリオを説明するパラグラフがあります。シェルコマンドが以下のようなケースに置かれていない限り、ほとんどの実行はエラーで終了します。
1. エラー|OK のようなパイプラインの終わらない部分
2. ok && error || other のような結合文の非終了部分。
3. error; okのような一連の文の非最終部分。
4. test, if, while などの判定文の中。

その他の用途

set: 位置パラメーターを初期化する

setが1つ以上の引数で呼ばれた場合、setは引数の値を$1から始まる位置引数に代入します。 次の例は

$ cat set-it.sh

#! /bin/bash

set first second third
echo $3 $2 $1

$ . /set-it.sh
third second first



上記のように、set-it.sh スクリプトは入力パラメータなしで実行されますが、set コマンドは position パラメータに値を割り当てています。

を設定します。シェル変数を表示する

引数なしで set コマンドを使用すると、ユーザー定義変数とキーワード変数を含む、設定されているシェル変数のリストが表示されます。

$ set 
BASH_VERSION='4.2.24(1)-release'
COLORS=/etc/DIR_COLORS
MAIL=/var/spool/mail/username
...


シェルでのsetコマンドの使い方についての記事は以上です。シェルにおけるsetコマンドの詳細については、スクリプトハウスの過去記事を検索するか、以下の記事を引き続き閲覧してください。