1. ホーム
  2. string

[解決済み] BashやUnixシェルで、文字列の最初の文字をチェックするにはどうしたらいいですか?

2023-02-03 13:58:46

質問

Unixで、文字列の最初の文字が"/"であるかどうかをチェックし、もしそうなら分岐するスクリプトを書いています。

例えば、ある文字列があります。

/some/directory/file

これを1を返すようにしたい、と。

[email protected]:/some/directory/file

で0を返します。

どのように解決するのですか?

これには多くの方法があります。二重括弧でワイルドカードを使うとか。

str="/some/directory/file"
if [[ $str == /* ]]; then echo 1; else echo 0; fi

部分文字列展開を利用することができます。

if [[ ${str:0:1} == "/" ]] ; then echo 1; else echo 0; fi

あるいは正規表現

if [[ $str =~ ^/ ]]; then echo 1; else echo 0; fi