【问题标题】:csh inline if statementscsh 内联 if 语句
【发布时间】:2013-11-04 18:38:38
【问题描述】:

我正在尝试在我的.cshrc 文件中执行命令之前添加一个脚本来检查条件。如果条件不充分,此检查器脚本返回 0,否则返回 1。 (我意识到这是对约定的倒退,但我认为 if 语句会更容易。)

这是我尝试过的,将命令替换为echo "ok"

./checker.sh && echo "ok"

即使checker.sh 返回 0,也会回显“ok”。

test ./checker.sh && echo "ok"

即使checker.sh 返回 0,也会回显“ok”,但也会抑制 checker.sh 中的错误消息。

if ( ./checker.sh ) then echo "ok" endif

引发 if 语句语法错误。

我想把它变成一个别名,因此是单行约束,例如

alias doAction './checker.sh && echo "ok"'

如何在不直接调用检查器脚本中的命令的情况下使用(t)csh 完成此操作?

谢谢!

【问题讨论】:

  • 如果你想在非零退出时执行代码,请执行checker.csh || echo "ok"
  • 为避免csh 中单行if 语句的语法错误,请勿使用thenendif。例如:if ( 1 ) echo "y".

标签: if-statement csh tcsh


【解决方案1】:

没有问题的时候我把脚本改成exit 0,有问题的时候退出一个非零数。那么

./checker.sh && echo "ok"

按要求行事...

其他可能阅读此内容的人请注意:上述“测试”构造不等同于 C 风格的 if 语句

if(./checker.sh){
  echo "ok"
}

【讨论】:

猜你喜欢
  • 2017-10-28
  • 1970-01-01
  • 2013-02-15
  • 1970-01-01
  • 1970-01-01
  • 2022-07-07
  • 2017-08-18
  • 2011-02-19
  • 2017-03-24
相关资源
最近更新 更多