[解決済み] Bashシェルスクリプト - フラグをチェックし、その値を取得します。
2022-03-14 23:56:26
質問
このように実行されることを想定したシェルスクリプトを作ろうとしています。
script.sh -t application
まず、このスクリプトで、-t フラグを付けて実行されたかどうかをチェックしたいのです。例えば、このようにフラグなしで実行された場合、エラーにしたいのです。
script.sh
次に、-tフラグがあると仮定して、値を取得して変数に格納し、例えば次のようにスクリプトで使用できるようにしたい。
FLAG="application"
今のところ、私ができた唯一の進歩は、$@がすべてのコマンドライン引数をつかむことですが、これがフラグにどう関係するのか、あるいはこれが可能なのかどうかさえわかりません。
解決するには?
こちらをご覧ください。 ゲッツ チュートリアルをご覧ください。
を使った例
-a
スイッチは、引数を必要とします。
#!/bin/bash
while getopts ":a:" opt; do
case $opt in
a)
echo "-a was triggered, Parameter: $OPTARG" >&2
;;
\?)
echo "Invalid option: -$OPTARG" >&2
exit 1
;;
:)
echo "Option -$OPTARG requires an argument." >&2
exit 1
;;
esac
done
greybotさんのおっしゃる通り(
getopt
!=
getopts
) :
外部コマンドgetopt(1)は、以下の場合を除き、決して安全に使用できるものではありません。 知っている はGNU getoptであり、GNU特有の方法でそれを呼び出すのです。 そして あなたは GETOPT_COMPATIBLE が環境変数にないこと。getoptsを使う(シェル を使うか、単純に位置パラメータをループさせるかです。
関連
-
Process.waitFor()の戻り値の意味するところ
-
[解決済み] Bashシェルスクリプトでディレクトリが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] Bashスクリプトからプログラムが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] ディレクトリが存在しない場合のみmkdirする方法は?
-
[解決済み] フォルダとそのサブフォルダ/ファイルのパーミッションを一括で変更する方法
-
[解決済み] LinuxのシェルスクリプトでYes/No/Cancelの入力を促すにはどうしたらいいですか?
-
[解決済み] Bashシェルスクリプトの入力引数の存在確認
-
[解決済み] シェルスクリプトで部分文字列を別の文字列に置き換える
-
[解決済み] シェルコマンドを実行しながらエコーする方法
-
[解決済み] bashシェルスクリプトの全引数を伝搬させる
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
deepin20のサブネットマスクはどこですか?deepinのサブネットマスクを表示するためのヒント
-
rsyncとinotfiyの組み合わせでリアルタイムバックアップ問題を実現
-
TclError: 表示名がなく、$DISPLAY環境変数もない。
-
Centos7 dns service named installation, encountered ** server can't find xxx.com: NXDOMAIN問題
-
Apache の一般的な設定エラー
-
[解決済み] Linuxで特定のテキストを含むすべてのファイルを検索するにはどうすればよいですか?
-
[解決済み] Bashでコマンドライン引数を解析するには?
-
[解決済み] find .コマンドでディレクトリを除外する方法
-
[解決済み] 複数のPDFファイルを1つのPDFに結合/変換する【終了】。
-
[解決済み] ターミナルで現在の日付と時刻を取得し、それに対してターミナルでカスタムコマンドを設定するにはどうすればよいですか?[クローズド]です。