bash - 如何在 bash 脚本中进行字符比较?

标签 bash shell

这是我的代码

#! /bin/bash
read var
if [ $var="Y" -o $var="y" ]
then
    echo "YES"
else
    echo "NO"
fi

如果用户按 y 或 Y,我想打印 YES,否则我想打印 NO。为什么这段代码不起作用?

最佳答案

基本上,您的条件是错误的。引用您的变量并在运算符之间留出空格(如 shellter 所写)。所以它应该看起来像:

#! /bin/bash
read var
if  [ "$var" = "Y" ] || [ "$var" = "y" ]
then
    echo "YES"
else
    echo "NO"
fi

编辑:为了 POSIX ccompatibility

  • == 替换为 = - 查看评论
  • -o 语法替换为 || 语法 - 参见评论

关于bash - 如何在 bash 脚本中进行字符比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39550623/

相关文章:

linux - 将 shell 变量传递给系统用户

c - Badly placed ()的错误在我的shell运行的C代码中发现,如何解决错误?

bash - 如何比较unix中的用户输入

linux - EOF 和 openssl 密码

linux - 在 curl POST 中扩展 shell 变量?

shell - 来自子shell输出的 fish shell 输入重定向

linux - 每次启动时都需要输入exec bash

linux - 在解压缩文件时删除文件的已解压缩部分的方法?

linux - sed 仅在第一场比赛中插入

java - 与 Bash 相比,Java 中的语言环境区分大小写不一致