line=$(grep "# rvm line" ~/.bashrc)
if [ ! -n "$line" ]; then
echo "found"
else
echo "not found"
fi
第一行我的报价出了什么问题?
编辑:问题是set -o errexit
,我在我的脚本中使用它。我认为-n
被视为错误,退出以下过程。我怎样才能克服这个问题,保持错误检查? (-n的替代方案也可以起作用)。
答案 0 :(得分:3)
如果您不打算使用$line
除了测试是否为空之外的其他任何内容,那么您可以这样做:
if grep -q '# rvm line' ~/.bashrc; then
echo "found"
else
echo "not found"
fi
答案 1 :(得分:1)
<强>没有强>
报价显然没有错?你没有得到预期的结果吗?
好的,你的if条件错了 - 如果它打算检查grep语句返回的东西。我将把它作为自己弄清楚的线索。古德勒克