助け合いフォーラム

LPIC

LPIC Lv1-102(Ver5.0)
問題ID : 4782
問題を開く
シェルスクリプトを作成した。シェルスクリプトを読み込むが、実行はせずに構文にエラーが無いかどうかを確認するようにしたい。適切なコマンドは次のうちどれか。

この問題はプレミアムコンテンツです。

上に戻る

set -o noexecの解説について

公開日 2023/10/03

この問題の解説に、以下の記載があります。
「構文エラーはディスプレイに標準出力され、構文エラーがない場合もシェルスクリプトは実行されません。なお、このオプションは対話的シェルでは無視されます。」
上記後半の
「このオプションは対話的シェルでは無視されます。」
は、noexecだけではなく、その上の
set [-o][+o] オプションの表に記載されている
全ての項目(全てのオプション)にあてはまり、noexecだけに
対する説明ではないと思われたのですが、正しいでしょうか。

ご存じの方がおられたら、教えて下さい。
宜しくお願いします。

2023/10/03 21:45

noexecだけではなく、その上の
set [-o][+o] オプションの表に記載されている
全ての項目(全てのオプション)にあてはまり、noexecだけに
対する説明ではないと思われたのですが、正しいでしょうか。

こちらそう思われた根拠などはありますか。
ググってみましたが、以下には-n(noexec)の説明や注釈に「対話シェルでは無視する」「非対話型シェルに」などとありましたので、noexecだけに対する説明と受け取っていいのではないでしょうか。
https://atmarkit.itmedia.co.jp/ait/spv/1805/10/news023.html
https://www.ibm.com/docs/ja/zos/2.4.0?topic=descriptions-set-set-unset-command-options-positional-parameters


コメント

この返信に対して
コメントを記入できます

2023/10/04 08:30

dandyleopon様
ご回答、有難うございます。
ご指摘頂き、私の理解の誤りに気付くことができました。

こちらそう思われた根拠などはありますか。

ここでの「対話的シェル」を、ログインシェルではないその後に
対話型シェルとして起動したbashと誤読しておりました。
「このオプションは対話的シェルでは無視されます。」を
ログインシェルのbashで設定しても、その後起動した新しい
bashでは有効ではないということかと思い、その意味であれば
他のシェルオプションも同じと思われたので、質問させて頂きました。

宜しくお願いします。


コメント

この返信に対して
コメントを記入できます

この投稿に対して返信しませんか?