Bashのif文で文字変数を使用するには? [コピー]

Bashのif文で文字変数を使用するには? [コピー]

たとえば、私はこのような記事を書いた。

read -p "Enter a character: " variable
if [ $variable -eq 'A' ];

整数式が必要であるというエラーが発生しますが、整数変数を使用したくない文字を使用したいと思います。

答え1

これはRHEL 6で動作します。

#!/bin/bash

read -rN1 -p "Enter a character: " variable; echo>&2
if [ "$variable" = 'A' ]; then
  echo Capital A
else
  echo something else
fi

ただし、複数の文字を比較する場合は、次の構文を使用できますcase

case "$variable" in
  (A)   echo Capital A;;
  (b)   echo Lower case B;;
  ('\') echo Backslash;;
  (*)   echo something else;;
esac

関連情報