■ はじめに
https://dk521123.hatenablog.com/entry/2021/09/23/223401
で触れた「set -- xxxx」について よく分からなかったので調べてみた。
【0】set コマンド
【1】シェルの設定を確認、変更する 1)エラーがあった場合、そこで打ち止める 【2】現在設定されている変数を一覧表示 【3】位置パラメータをセットする 1)「set -- xxxx」
【1】シェルの設定を確認、変更する
構文
# シェルオプションを有効にする set -o シェルオプション # シェルオプションを無効にする set +o シェルオプション # 分かりづれーなー
1)エラーがあった場合、そこで打ち止める
set -o errexit or set -e
【2】現在設定されている変数を一覧表示
# 引数なし
set
【3】位置パラメータをセットする
# ここでセット $ set Hello world! set Hello world! $ echo $1 echo $1 Hello $ echo $2 echo $2 world!
1)「set -- xxxx」
「set -Hello」のように「-」が入ると オプションとして認識されてしまう。 => 「set --」の後なら指定可能
http://blog.livedoor.jp/skrbtks_39/archives/177458.html
サンプル
# エラーになってしまう $ set -Hello set -Hello bash: set: -l: invalid option set: usage: set [-abefhkmnptuvxBCHP] [-o option-name] [--] [arg ...] # 「--」でセット $ set -- -Hello set -- -Hello # 確認 $ echo $1 echo $1 -Hello
参考文献
https://orebibou.com/ja/home/201512/20151203_001/
https://qiita.com/blueskyarea/items/b07568191fbebc9bd32d
関連記事
シェル ~入門編~
https://dk521123.hatenablog.com/entry/2014/10/23/005406
パイプを使ったループで連想配列に値を設定する
https://dk521123.hatenablog.com/entry/2021/09/23/223401
shoptコマンド
https://dk521123.hatenablog.com/entry/2021/09/12/000000
リダイレクト・パイプライン
https://dk521123.hatenablog.com/entry/2021/09/13/000000