at=`echo $1 | grep -q "@"`
if [ $at -ne 0 ]; then
echo "blabla"
else
echo "bloblo"
fi
$at已设置,测试在脚本外正常工作
解决方法:
在测试grep -q的结果时,你想测试$?不是grep的输出,它将是空的
at=$(echo "$1" | grep -q "@")
if [ $? -ne 0 ]; then ...
或者干脆
if echo "$1" | grep -q "@"; then ...
或者,更多的打击
if grep -q "@" <<< "$1"; then ...
或者,不要调用grep:
if [[ "$1" == *@* ]]; then ...
要么
case "$1" in
*@*) echo "match" ;;
*) echo "no match" ;;
esac
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。