作者:卢-lydia09 | 来源:互联网 | 2024-09-29 17:18
为什么我有一个整数表达式预期错误:at`echo$1|grep-q@`if[$at-ne0];thenechoblablaelseechobloblofi$at已设置,
为什么我有一个整数表达式预期错误:
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