我想检查对象是否存在以及是否已经存在,所以我想在重新创建对象之前删除该对象。
在构建过程中,我需要使用它来处理android模拟器,但似乎如果找不到任何内容,就无法将'grep'的结果赋给变量...?
这是我的示例(不起作用):
echo "# --> use avdmanager"
# delete existing avd if available
test_avd=$(android list avd | grep test)
if [ ! -z $test_avd ]
then
echo "# --> delete old avd"
avdmanager delete avd -n "test"
fi
# create new avd
如果 grep 找不到任何错误,脚本将在test_avd=$(.....)
之后停止。
即使我在test_avd="$(...)"
周围加上一些引号,也是如此......:(
此版本工作正常,但我真的不知道为什么。也许有人在那里有什么建议?
echo "# --> use avdmanager"
# delete existing avd if available
if [ ! -z "$(avdmanager list avd | grep test)" ]
then
echo "# --> delete old avd"
avdmanager delete avd -n "test"
fi
# create new avd
答案 0 :(得分:1)
如果grep
不返回任何内容,则$test_avd
变量将为空。但是这里不需要变量。
代替此:
test_avd=$(android list avd | grep test)
if [ ! -z $test_avd ]
使用此:
if android list avd | grep -q test
注意:当需要变量 时,! -z
也是不必要的; [ "$test_avd" ]
返回与[ ! -z $test_avd ]
完全相同的结果。