Linux 为什么有一个“;需要整数表达式”;?
为什么我有一个整数表达式预期错误:Linux 为什么有一个“;需要整数表达式”;?,linux,bash,shell,Linux,Bash,Shell,为什么我有一个整数表达式预期错误: at=`echo $1 | grep -q "@"` if [ $at -ne 0 ]; then echo "blabla" else echo "bloblo" fi $at已设置,脚本外部的测试正常运行-ne用于比较整数。使用=比较字符串。在测试grep-q的结果时,您希望测试$?而不是grep的输出,grep的输出将为空 at=$(echo "$1" | grep -q "@") if [ $? -ne 0 ]; then ...
at=`echo $1 | grep -q "@"`
if [ $at -ne 0 ]; then
echo "blabla"
else
echo "bloblo"
fi
$at
已设置,脚本外部的测试正常运行-ne
用于比较整数。使用=
比较字符串。在测试grep-q的结果时,您希望测试$?
而不是grep的输出,grep的输出将为空
at=$(echo "$1" | grep -q "@")
if [ $? -ne 0 ]; then ...
或者干脆
if echo "$1" | grep -q "@"; then ...
或者,更害羞一些
if grep -q "@" <<< "$1"; then ...
或
谢谢你,伙计!它工作正常,但需要[“$at”!=0];感谢您的快速回复:)–在测试grep-q的结果时,您想测试$?:非常感谢你一直以来的努力,我想我今天学到了一些东西:)特别是“no grep”语法。顺便说一下,谢谢
if [[ "$1" == *@* ]]; then ...
case "$1" in
*@*) echo "match" ;;
*) echo "no match" ;;
esac