【问题标题】:Conditionally run command in bash shell script using if/fi construct使用 if/fi 构造有条件地在 bash shell 脚本中运行命令
【发布时间】:2014-08-05 14:54:49
【问题描述】:

如果变量 A 大于零,我将尝试运行以下命令。 A 设置在所有这些之前。

pybot --rerunfailed $HUDSON_HOME/jobs/$JOB_NAME/builds/$PAST_BUILD/robot-plugin/output.xml

如果此变量 A 不大于零,则运行以下命令

pybot --suite "$TEST_SUITE" --test "$TEST_CASE" --exclude $TAGS_TO_EXCLUDE

如何使用 if/then/else/fi 构造来做到这一点?

【问题讨论】:

  • if [[ $A -gt 0 ]]; then somestuff;else some other stuff; fi。基本的谷歌搜索会在不到 10 秒的时间内产生这个结果
  • 谢谢,但你一定没有读过我的问题。我试图在 if 下执行一个命令,在 else 下执行另一个命令。我确实做了一些谷歌搜索,但我无法找到这个特定问题的答案。
  • 这就是这样做的。如果A>0,则执行somestuff,否则执行some other stuff。

标签: bash shell unix command-line


【解决方案1】:

您可以在BASH 中使用这个if/else/fi sn-p 使用算术评估器((...)):

if (( A > 0)); then
   pybot --rerunfailed "$HUDSON_HOME/jobs/$JOB_NAME/builds/$PAST_BUILD/robot-plugin/output.xml"
else
   pybot --suite "$TEST_SUITE" --test "$TEST_CASE" --exclude "$TAGS_TO_EXCLUDE"
fi

PS:最好将所有 BASH 变量用引号括起来,以避免由于意外的 shell 扩展或变量中存在空格/换行而导致的问题。

【讨论】:

  • 最好也建议引用这些论点。
  • 谢谢@konsolebox。我在回答中添加了这个。
猜你喜欢
  • 1970-01-01
  • 2011-01-22
  • 2019-09-02
  • 2013-02-14
  • 1970-01-01
  • 2020-01-02
  • 1970-01-01
  • 2013-04-20
相关资源
最近更新 更多