シェルスクリプトで文字列の長さを確認する方法

目次

スポンサードリンク

Linuxのシェルスクリプトでは変数に文字列を代入することができます。文字列の長さを確認したり、長さによって処理を分岐する方法を解説します。

シェルスクリプト上で以下のように記述すると、文字列の長さを取得することができます。

${#変数名}

サンプルコード

#!/bin/sh

string1="This is example."
string2="これはサンプル文字列です."

echo ${#string1}
echo ${#string2}

exit 0

上記のサンプルコードを実行すると以下のように表示されます。RHEL系のLinuxで試してみましたが日本語の文字列でも問題なく正しい文字数が取得できています。数値の桁数をチェックする際に有用ですね。

# ./sample.sh
16
13

文字数の長さによって処理を分岐する方法

if文で使える演算子を使って文字列の長さによって処理を分岐させることができます。-eq は数値と一致しているか、-gt、-ge などでは数値の大小を条件にすることができます。

if [ ${#string1} -eq 16 ]; then
echo 'string1は16文字'
fi

if [ ${#string2} -eq 13 ]; then
echo 'string2は13文字'
fi

if [ ${#string1} -ge 16 ]; then
echo 'string1は16文字以上'
fi

if [ ${#string1} -gt 15 ]; then
echo 'string1は15文字より大きい'
fi

if [ ${#string2} -le 13 ]; then
echo 'string2は13文字以下'
fi

if [ ${#string2} -lt 14 ]; then
echo 'string2は14文字より小さい'
fi

# ./sample.sh
string1は16文字
string2は13文字
string1は16文字以上
string1は15文字より大きい
string2は13文字以下
string2は14文字より小さい

シェルスクリプトの知識は、プログラマにとって長く役立つ知識です。 私はこちらの書籍で一通り知識を抑えました。基本から丁寧に解説されています。

最短3時間で覚えるLinuxシェルスクリプト
こちらは、シェルスクリプトの基本的な書き方、デバッグ方法、if, case, while, forなど基本的な制御構文について書かれています。30日間の無料体験もできる『Kindle Unlimited』でも読むことができます。