Shellでsetとshotコマンドオプションの意味と使用例


前言
ここでは主にShellのsetとshept命令のオプションの意味と使用に関する内容を紹介します。皆さんの参考学習に供するために、以下の話は多くなくなりました。詳しく紹介してみましょう。
セットコマンドのオプション
setコマンドの役割は、システムに既に存在するshell変数と、shell変数を設定する新しい変数値を表示します。setを使ってshell特性を変更する場合、記号「+」と「-」の役割はそれぞれ指定されたモードをオンとオフにします。setコマンドは新しいshell変数を定義できません。新しい変数を定義する場合は、declareコマンドを使用して変数名=値の書式で定義すればいいです。
内蔵セットコマンドオプション
オプション名
ショートカットスイッチ
意味
allexport
-a
このオプションから出力する新しい変数や変更した変数が自動的に表示され、オプションがリセットされるまで設定されます。
braaceexpand
-B
かっこの拡大をオンにします。これは標準設定です。
emaacs
emmacs内蔵エディタを使ってコマンドライン編集を行うのは、デフォルトの設定です。
errexit
-e
コマンドがゼロ以外の終了状態(失敗)に戻ると、終了します。初期化ファイルの読み込み時は設定しません。
histexpand
-H
履歴置換を実行するときに開きます。と拡張は、デフォルトの設定です。
history
コマンドラインの履歴を開いて、デフォルトでは開いています。
イグノレof
EOF(Ctrl+D)キーでshellを終了することを禁止します。exitを入力しないと終了できません。shell変数を設定するIGNOREEOF=10に相当します。
keyword
-k
キーワードパラメータをコマンドの環境に配置します。
インターアクティヴ-comments
インタラクティブなshellに対して、铉符の後のテキストを注釈とします。
モニター
-m
作業制御の設定
ノーパーバー
-C
ファイルのリダイレクト時の書き換えを防ぐ
noexec
-n
コマンドを読みますが、実行しません。スクリプトの文法をチェックします。インタラクティブ運転時は開けません。
noglob
-d
パス名での拡張を禁止します。ワイルドカードを閉じる
notify
-b
バックグラウンド作業完了時にユーザに通知する
nounset
-u
未設定の変数を拡張するとエラーメッセージが表示されます。
onecmd
-t
コマンドの読み込みと実行後に終了します。
physical
-P
設定時は、cdまたはpwdを入力すると、シンボルリンクが禁止されます。物理ディレクトリで置換
privleged
-p
設定後、shellは読み込まれません。profileまたはENVファイルは、環境からshell関数を引き継ぎません。自動的にsetuidスクリプトのための特権を開きます。
ボトムス
-v
デバッグのためにバージョンモードを開く
vi
vi内蔵エディタを使ってコマンドライン編集を行います。
xtrace
-x
デバッグのためにechoモードを開く
ショートカットコマンドのオプション
shottコマンドはsetコマンドの代わりとして、多くの面でsetコマンドと同じですが、多くのオプションが追加されました。「-p」オプションを使って、ショップオプションの設定を確認することができます。「-u"スイッチはリセットのオプションを表し、「-s」はオプションが現在設定されていることを表します。
ショップコマンドパラメータの使い方
オプション
意味
cdablevars
cdにコマンドを内蔵するパラメータがディレクトリではない場合、変数名であると仮定します。変数の値は変換するディレクトリです。
cdspell
cdコマンドのディレクトリ名の小さいスペルエラーを修正します。チェックのエラーは、逆順の文字、脱落した文字、重複した文字を含みます。修正すべき箇所を見つけたら、正しいパスがプリントされます。コマンドは継続します。インタラクティブshellのみに使用します。
check hash
bashは、一つのコマンドを実行しようとする前に、まず、ハッシュ・テーブルでコマンドが存在するかどうかを判定します。コマンドが存在しない場合は、通常のパス検索を実行します。
check wisize
bashは各コマンド後にウィンドウサイズを確認し、必要があればLINEとCOLUMNSの値を更新します。
cmdhist
bashは複数行のコマンドのすべての行を同じ履歴に保存しようとします。これは複数行のコマンドの再編集が便利です。
dotglob
Bashはファイル名の拡張結果に点(.)で始まるファイル名を含めます。
execfail
もし、非対話型のshellがパラメータとして指定されたファイルをexecに実行できないなら、それは終了しません。execが失敗したら、対話式shellは終了しません。
expand_aliases
エイリアスを拡張します。デフォルトはオープンです。
extglob
拡張モードマッチング特性を開く(通常の表現要素文字はKorrn shellのファイル名拡張から)
histappend
readlineが使用されている場合、ユーザーは失敗した履歴を編集し直す機会があります。
histverify
設定されていて、かつreadlineが使用されている場合、履歴置換の結果はすぐにshellインタプリタに渡されません。結果の行をreadline編集バッファに読み込んで、さらに変更することができます。
ホームコンプレックス
設定されている場合、readlineが使用されています。@を含む単語が完成している場合、bashはホスト名補完を実行しようとします。デフォルトはオープンです。
huponexit
設定されている場合、一つのインターフェース登録shellが終了すると、bashは一つのSIGHUPを全てのジョブに送信します。
インターアクティヴcomments
一つのインタラクティブshellにおいて.膎の最初の単語と同じ行の他の文字を無視することができます。デフォルトをオンにします。
list
開いている場合は、cmdhistオプションも開きます。複数行のコマンドは、可能な場所でセミコロンで区切らずに、埋め込まれた改行符で履歴に保存されます。
mail warn
もし設定されているならば、bashでメールのファイルをチェックします。前回チェックしてからすでに訪問されています。メッセージが表示されます。「The mail in mail file has been read」
nocaseglob
設定すると、ファイル名拡張を実行すると、bashは大文字と小文字を区別せずにファイル名に一致します。
nullglob
設定すると、bashはファイルにマッチしていないファイル名パターンを空の列に拡張することができます。彼ら自身ではありません。
promptvars
設定すると、インジケータ列が拡張された後に変数とパラメトリックが拡張されます。デフォルトはオンとなります。
resticted_shell
shellが制限モードで起動したらこのオプションを設定します。この値は変更されません。起動ファイルを実行するときはこのオプションをリセットできません。起動ファイル発見shellが制限されていますか?
shiftボトムス
このオプションが設定されている場合、シフトカウントが位置パラメータ個数を超えている場合、shift内蔵コマンドはエラーメッセージを印刷します。
sourcepath
設定すると、source内蔵コマンドはPATHの値を使ってパラメータとして提供されるファイルのディレクトリを探します。デフォルトはオープンです。
source
点(.)の同義語
 
ディレクトリからファイルを削除します。
下には、異なる拡張モードマッチングオペレータが一覧されています。これらのモードリストは、一つまたは複数のファイル名を含むリストを|で分割します。
ワイルドカード
意味
*(モードリスト)
0つ以上の出現にマッチする指定モード
?パターンリスト)
0つまたは1つの出現にマッチする指定モード
@(モードリスト)
1つ以上の出現にマッチする指定モード
!パターンリスト)
指定されたモード以外の内容にマッチします。
extglob shellオプションを開く

shopt -s extglob
ディレクトリからファイルを削除します。

rm -v !("filename")
filename 1とfilename 2以外のすべてのファイルを削除します。

rm -v !("filename1"|"filename2")
zip以外のすべてのファイルを削除します。

rm -i !(*.zip)
extglob shellオプションをオフにします。

shopt -u extglob
締め括りをつける
以上はこの文章の全部の内容です。本文の内容は皆さんの学習や仕事に一定の助けをもたらすことを望んでいます。もし疑問があれば、メッセージを残して交流してください。ありがとうございます。