String 如何在BASH脚本中比较字符串?
我只想知道如何读取字符串,然后比较它。如果是“加号”,则继续String 如何在BASH脚本中比较字符串?,string,bash,command-line,terminal,String,Bash,Command Line,Terminal,我只想知道如何读取字符串,然后比较它。如果是“加号”,则继续 #!/bin/bash echo -n Enter the First Number: read num echo -n Please type plus: read opr if [ $num -eq 4 && "$opr"= plus ]; then echo this is the right fi 如果您使用的是bash,那么我强烈建议使用双括号。它们比单括号好得多;例如,它们处理不带引号的变
#!/bin/bash
echo -n Enter the First Number:
read num
echo -n Please type plus:
read opr
if [ $num -eq 4 && "$opr"= plus ]; then
echo this is the right
fi
如果您使用的是bash,那么我强烈建议使用双括号。它们比单括号好得多;例如,它们处理不带引号的变量更加合理,您可以在括号内使用&&
如果使用单括号,则应写下:
if [ "$num" -eq 4 ] && [ "$opr" = 'plus' ]; then
echo 'this is the right'
fi
如果您使用的是bash,那么我强烈建议使用双括号。它们比单括号好得多;例如,它们处理不带引号的变量更加合理,您可以在括号内使用&&
如果使用单括号,则应写下:
if [ "$num" -eq 4 ] && [ "$opr" = 'plus' ]; then
echo 'this is the right'
fi
我相信OP希望将opr与字符串“plus”进行比较,而不是与运算符“+”;)进行比较谢谢,这真的很有用。我相信OP希望opr与字符串“plus”比较,而不是运算符“+”;)谢谢这真的很有用它是
=
,不是=
,而且不需要额外的引号是的,我想使用POSIX样式,即=
和[…]
。在[…]
中,我同意建议使用=
。使用引号可以避免混淆,是一种很好的做法,尤其是当您有一些特殊字符时。对于像plus这样的字符串,它是可选的。在[]
中,=
是必需的,而不仅仅是推荐的。我同意引用是一种很好的做法,但你的评论给人的印象是,额外的引用将解决OP的问题。一般来说,我认为最好在答案中添加一些解释,而不仅仅是转储代码。大多数现代bash shell都允许在[]
以及[[[]]
中使用=
。没错,我没有注意到问题只有bash
标记。我在考虑一个“标准”shell。它是=
,而不是=
,并且不需要额外的引号是的,我想使用POSIX样式,即=
和[…]
。在[…]
中,我同意建议使用=
。使用引号可以避免混淆,是一种很好的做法,尤其是当您有一些特殊字符时。对于像plus这样的字符串,它是可选的。在[]
中,=
是必需的,而不仅仅是推荐的。我同意引用是一种很好的做法,但你的评论给人的印象是,额外的引用将解决OP的问题。一般来说,我认为最好在答案中添加一些解释,而不仅仅是转储代码。大多数现代bash shell都允许在[]
以及[[[]]
中使用=
。没错,我没有注意到问题只有bash
标记。我在想一个“标准”的外壳。
if [ "$num" -eq 4 ] && [ "$opr" = 'plus' ]; then
echo 'this is the right'
fi