プロが教える店舗&オフィスのセキュリティ対策術

bashで変数cが空白(space)であるかどうかのif文の書き方は、

if [ "$c" = " " ]

でいいのでしょうか?

また、空文字かどうかの判断は、

if [ "$c" = "" ]

でいいのでしょうか?

質問者からの補足コメント

  • どう思う?

    空白文字の場合、正規表現を使った場合、

    if [[ "$c" =~ ^[[:blank:]]$ ]]

    の書き方で良いのでしょうか?

      補足日時:2019/09/28 16:07

A 回答 (2件)

> if [ "$c" = " " ]



空白1文字だとそうです。

> if [ "$c" = "" ]

それでいいですが、if [ -z "$c" ] という専用の演算子があります。

> if [[ "$c" =~ ^[[:blank:]]$ ]]

空白(全角空白含む)とタブどちらか1文字だとそうです。
改行等も含むなら[[:space:]]です。
    • good
    • 1
この回答へのお礼

詳しい説明、有難うございます。

お礼日時:2019/09/29 08:51

完全にうろ覚えだけど, c に入っているものによっては


if [ "$c" = " " ]
ではマズいことがあるんじゃなかったっけ.

bash などなかった時代では
if [ "x$c" = "x " ]
とかしてたはず.
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています