bash if [-n“$ output of a variable”]

时间:2011-09-29 13:33:50

标签: bash if-statement grep

line=$(grep "# rvm line" ~/.bashrc)

if [ ! -n "$line" ]; then
  echo "found"
else
  echo "not found"
fi

第一行我的报价出了什么问题?

编辑:问题是set -o errexit,我在我的脚本中使用它。我认为-n被视为错误,退出以下过程。我怎样才能克服这个问题,保持错误检查? (-n的替代方案也可以起作用)。

2 个答案:

答案 0 :(得分:3)

如果您不打算使用$line除了测试是否为空之外的其他任何内容,那么您可以这样做:

if grep -q '# rvm line' ~/.bashrc; then
  echo "found"
else
  echo "not found"
fi

答案 1 :(得分:1)

<强>没有

报价显然没有错?你没有得到预期的结果吗?

好的,你的if条件错了 - 如果它打算检查grep语句返回的东西。我将把它作为自己弄清楚的线索。古德勒克