为什么我有一个整数表达式预期错误:
at=`echo $1 | grep -q "@"`
if [ $at -ne 0 ]; then
echo "blabla"
else
echo "bloblo"
fi
$at
已设置,测试在脚本
答案 0 :(得分:4)
在测试grep -q
的结果时,您希望测试$?
而不是grep的输出,这将是空的
at=$(echo "$1" | grep -q "@")
if [ $? -ne 0 ]; then ...
或只是
if echo "$1" | grep -q "@"; then ...
或更多bash-ly
if grep -q "@" <<< "$1"; then ...
或者,不用调用grep:
if [[ "$1" == *@* ]]; then ...
或
case "$1" in
*@*) echo "match" ;;
*) echo "no match" ;;
esac
答案 1 :(得分:3)
-ne
用于比较整数。使用!=
来比较字符串。