【问题标题】:ampersand at beginning of a line in csh&符号在csh中的行首
【发布时间】:2010-02-22 22:20:50
【问题描述】:

在 csh 中,一行开头处的 & 号有什么作用?它似乎被忽略了(没有错误消息),但是为什么呢?

【问题讨论】:

标签: linux unix shell csh


【解决方案1】:

发现了一些有趣的东西:

分号 (;) 字符分隔 单个连续命令 命令行。例如,

% <command1> ; <command2>

执行,当它完成时,被执行。

与号 (&) 类似 到分号 (;) 但不等待 完成。

也许它把它当作一个空命令?

【讨论】:

  • 在 Bourne shell 中,如果使用分号启动命令行,则会出现语法错误; & 符号同上。但是,如果 csh 将其视为在后台运行的空命令,它至少是有意义的(某种意义上)。 (并且 csh 允许 "; echo abc" 和 "&amp; echo abc",在每种情况下都回显 'abc' - 与空命令假设一致)。
【解决方案2】:

最好的回答方式是举例。 考虑 JoelFAn 的想法:

示例 1

用户$日期;睡5秒;日期

2012 年 4 月 5 日星期四 10:46:45 IST

2012 年 4 月 5 日星期四 10:46:50 IST

示例 2

用户 $ 日期和睡眠 5 秒和日期

[1] 18371

[2] 18372

2012 年 4 月 5 日星期四 10:47:09 IST

2012 年 4 月 5 日星期四 10:47:09 IST

[1] - 完成日期

示例 3

用户$ bg

[2] 睡眠 5s &

这些例子是不言自明的。

谢谢

【讨论】:

    【解决方案3】:

    我在 csh 文档中找不到任何关于它的内容。但是,我知道在make 它会抑制命令的任何输出(但仍会运行它)。也许这就是它正在做的事情。

    【讨论】:

    • 在哪个版本的 'make' 中,'&' 会抑制命令的输出?我知道'@'停止'make'回应命令;我知道'-' 停止'make' 注意非零退出状态。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-05
    • 2019-03-26
    • 1970-01-01
    相关资源
    最近更新 更多