[解決済み] Bashのcaseステートメントで空文字列をテストするには?
2023-01-03 10:08:38
質問
変数の値に基づいてアクションを実行するBashスクリプトがあります。case文の一般的な構文は次のとおりです。
case ${command} in
start) do_start ;;
stop) do_stop ;;
config) do_config ;;
*) do_help ;;
esac
コマンドが提供されない場合、デフォルトのルーチンを実行したいと思います。
do_help
を実行したい。このようにcaseの値を省略してみました。
case ${command} in
) do_default ;;
...
*) do_help ;;
esac
結果は予想できたと思います。
syntax error near unexpected token `)'
次に、正規表現を使ってみました。
case ${command} in
^$) do_default ;;
...
*) do_help ;;
esac
これによって、空の
${command}
に落ちます。
*
のケースになります。
私は不可能を可能にしようとしているのでしょうか?
どのように解決するのですか?
この
case
文は正規表現ではなくグロブを使用し、完全一致を保証します。
ですから、空の文字列は通常通り、次のように書かれます。
""
あるいは
''
:
case "$command" in
"") do_empty ;;
something) do_something ;;
prefix*) do_prefix ;;
*) do_other ;;
esac
関連
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] Bashスクリプトのソースディレクトリをスクリプト自体から取得するにはどうすればよいですか?
-
[解決済み] Bashシェルスクリプトでディレクトリが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] Bashで通常のファイルが存在しないかどうかを判断する方法を教えてください。
-
[解決済み] JavaScriptで空文字列/未定義文字列/null文字列をチェックするにはどうすればよいですか?
-
[解決済み] Bashで文字列変数を連結する方法
-
[解決済み] Bashで文字列が部分文字列を含むかどうかをチェックする方法
-
[解決済み】JavaScriptで文字列の出現箇所をすべて置換する方法
-
[解決済み】大文字・小文字を区別しない「Contains(string)
-
[解決済み] Golangの文字列のインデックスを作成するには?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] c++で文字列をconst char[]に変換する方法
-
[解決済み] 動的構造体参照の引数は、有効なフィールド名として評価する必要があります。
-
[解決済み】Goで一定の長さのランダムな文字列を生成するには?
-
[解決済み】Java7で文字列からパスを作成する。
-
[解決済み】Scala:文字列のイテラブルを結合する
-
[解決済み】Bashで文字を別の文字に置き換える。
-
[解決済み] T-SQLのPadLeft関数
-
[解決済み] groovyのシングルクォート、ダブルクォート内の文字列の違いは何ですか?
-
[解決済み] Int を、先頭のゼロを揃えて、指定された長さの文字列に変換するにはどうしたらいいですか?
-
[解決済み] ScalaでInputStreamを文字列に変換する方法