bash if[-n";变量的$output";]

bash if[-n";变量的$output";],bash,if-statement,grep,Bash,If Statement,Grep,我第一行的引语有什么不对 编辑:问题是我在脚本中使用的set-o errexit。我假设-n被视为一个错误,退出以下进程。我如何克服这个问题,保持错误检查?(使用-n的替代品也可能有效)。什么都没有 这些引语显然没有什么错?你没有得到预期的结果吗 好的,您的if条件是错误的——如果它是为了检查grep语句是否返回了某些内容。我将把这作为一个线索留给你自己去弄清楚。好运什么都没有 这些引语显然没有什么错?你没有得到预期的结果吗 好的,您的if条件是错误的——如果它是为了检查grep语句是否返回了某

我第一行的引语有什么不对


编辑:问题是我在脚本中使用的
set-o errexit
。我假设
-n
被视为一个错误,退出以下进程。我如何克服这个问题,保持错误检查?(使用-n的替代品也可能有效)。

什么都没有

这些引语显然没有什么错?你没有得到预期的结果吗


好的,您的if条件是错误的——如果它是为了检查grep语句是否返回了某些内容。我将把这作为一个线索留给你自己去弄清楚。好运

什么都没有

这些引语显然没有什么错?你没有得到预期的结果吗


好的,您的if条件是错误的——如果它是为了检查grep语句是否返回了某些内容。我将把这作为一个线索留给你自己去弄清楚。Goodluck

如果您不打算使用
$line
来测试它是否为空,那么您最好这样做:

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

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

如果您不打算使用
$line
来测试它是否为空,那么您最好这样做:

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

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

错误的红色色调?将shebang更改为
#/bin/bash-x
或使用
设置-vx
并检查输出…您错误地使用了
-n
,如果字符串不为空,则表示为True,然后使用
对其进行否定错误的红色色调?将shebang更改为
#/bin/bash-x
或使用
设置-vx
并检查输出…您错误地使用了
-n
,如果字符串不为空,则表示为True,然后使用
对其进行否定嗯。。你说得对。它自己工作,但是当它在我的脚本中时,它只是锁定。。你说得对。它自己工作,但当它在我的脚本中时,它只是锁定。这太完美了。当与
set-o errexit
一起使用时,它比较短并且不会退出脚本,这很完美。当与
set-o errexit