【问题标题】:Why &>> in system() call has different behavior between 3.3 and 3.4为什么 &>> 在 system() 调用中在 3.3 和 3.4 之间有不同的行为
【发布时间】:2017-07-25 05:26:22
【问题描述】:

运行以下 R 代码

system("sleep 10 &>> test.log")

在 R 3.3.3 下,它正确睡眠 10 秒,但在 R 3.4.1 下,它立即退出,看起来像 sleep 10 & >> test.log

这是一个错误吗,因为我在https://cran.r-project.org/doc/manuals/r-release/NEWS.html 上没有发现从 R 3.3 到 3.4 对 system() 所做的任何更改?

问题已在"&>>" in sh behaves differently in Ubuntu 16.04.2 and Fedora 24解决

【问题讨论】:

  • 嗯。如果您通过&sleep 发送到后台,它不应该立即返回吗?
  • sleep 10 & 应该意味着发送到后台,但&>> 应该意味着将 stdout 和 stderr 直接发送到文件,至少它们在终端和以前的 R 版本中工作,但在 R 3.4 中完全相同的命令行为不同,并且与终端中的行为不一致。
  • 那么,也许把它带到 r-devel 那里?
  • 是的,认为这是一个导致奇怪问题的错误,例如二进制写入文件并成功“退出”但 file.exists 找不到该文件...
  • 我看到bugs.r-project.org/bugzilla3没有开放注册,我应该直接发邮件给R核心团队

标签: r shell


【解决方案1】:

问题不在 R 中,但不同的 linux 发行版可能会为 sh 选择不同的 shell,正如 "&>>" in sh behaves differently in Ubuntu 16.04.2 and Fedora 24 指出的那样

【讨论】:

    猜你喜欢
    • 2015-05-22
    • 1970-01-01
    • 2017-04-03
    • 2017-10-30
    • 2018-07-27
    • 2012-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多