助け合いフォーラム
正解
set
解説
setコマンドは、引数を指定しない場合は全てのシェル変数と環境変数を表示します。
以下の書式のように引数を指定した場合は、シェルのオプションを変更できます。
※オプションの詳細はLPIC102の範囲です。ここでは「setコマンドでシェルのオプションを設定できる」という事を覚えておきましょう。
set [-o][+o] オプション
オプションを有効にするには「-o」を指定し、解除するには「+o」を指定します。
その他の選択肢について、exportとenvは、環境変数を表示するコマンドでありsetとともによく出題されます。
しかし、この2つにはsetのようにシェルのオプションを設定する機能はないため、誤りです。
また、bashはLinuxの標準シェルの名称であり、このようなコマンドはないため、誤りです。
参考
setコマンドの書式と主なオプションは以下のとおりです。
※オプションの詳細はLPIC102の範囲です。ここでは「setコマンドでシェルのオプションを設定できる」という事を覚えておきましょう。
set [-o][+o] オプション
オプションを有効にするには「-o」を指定し、解除するには「+o」を指定します。
例)「Ctrl + D」を押してもログアウトしないよう設定する場合
シェルのオプションの設定状態は「set -o」 コマンドで確認できます。
「set +o」ではシェルのオプションの設定状態がsetコマンドの実行形式で表示されます。
なお、「set」コマンドを引数なしで実行すると、設定済みのシェル変数や環境変数、シェル関数が表示されます。
「シェル変数」と「シェルのオプション」の用語の関係
この問題の解説、参考に以下の2つの用語が使用されています。
①「シェル変数」
②「シェルのオプション」
上記①、②についての解説の文章の意味は、以下の様に理解して正しいでしょうか。
(私は、下記の様に思ったのですが、正しいのか自信がないため、質問しております。)
・①は②の一部であり、②に含まれる(①は②のサブセットである)
・①=②ではない
・setは②の全てを表示し、その中に①が含まれる(setの表示は、①以外の部分が存在する)
ご存じの方がおられたら、教えて下さい。
宜しくお願いします。
・①は②の一部であり、②に含まれる(①は②のサブセットである)
①と②は異なる機能だと思います。一部でもないです。
・①=②ではない
YESです。
・setは②の全てを表示し、その中に①が含まれる(setの表示は、①以外の部分が存在する)
setコマンド(オプションなし)は ①シェル変数 に加えて環境変数などを表示します。
オプション名を指定しない「set -o(または set +o)」コマンドは、②のすべて? というか設定状況を表示します。
①シェル変数は、シェルの中でのみ有効な変数です。変数名も値も任意です。
$ aaa=100
とすると、シェル変数 aaa には 100 という値が設定されていることになります。
シェル変数をどのように定義してどう使うかはユーザーが決めることです。
②シェルのオプションは、こちらの問題にあるとおり allexport とか emacs とか、名前も機能も決まってます。
有効/無効を切り替えることで、シェルを使う上で便利になったりシェルの動作を自分好みの操作感にできます。
機能を有効にするかどうかはユーザーが決められます。
コメント
この投稿に対して返信しませんか?
k kz5835
2023/08/07 22:24
ojixii様 ご回答、有難うございます。おかげ様で理解することができました。宜しくお願いします。