如何在 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

相关内容