3

文字列比較の大文字と小文字を区別しないようにBourneシェルを作成する方法はありますか?または、変数をすべて小文字に変換できますか?

エコーでtrを使用しようとしましたが、変数を上書きすることができませんでした。

4

2 に答える 2

7

試してみました

MYVAR="This is a Test."
MYVAR=$(echo $MYVAR | tr '[:upper:]' '[:lower:]')
echo $MYVAR

結果は

this is a test.
于 2013-01-16T22:39:18.753 に答える
3

与えられた答えはbashに対するものであり、 $(...)構造を知らない Bourne シェルに対するものではないことに 注意してください。また、trクラスupperlowerなどは、すべての tr 実装に存在するわけではありません。使用しているプラ​​ットフォームによって異なります (Solaris では、/usr/bin/tr の代わりに /usr/xpg4/bin/tr を使用します)。古典的な tr回答を持つ
適切なBourne シェルは次のとおりです。

MYVAR=`echo "$MYVAR" | tr '[A-Z]' '[a-z]'`

あなたは与えられた答えに満足しているので、大丈夫です.bashの遍在性を考えると、ほとんどの読者にとってはおそらく問題ありません.

ただし、質問に正しくタグを付ける必要があります: bourne-shell は誤解を招くものです。

于 2013-02-07T13:03:15.967 に答える