如何使用 R 中的以下命令:echo "${pipestatus[1]}"?
How to use the following command from R: echo "${pipestatus[1]}"?
我需要在 Debian 上检查来自 R 的管道命令的退出状态,例如 here,但无法使用 system2
从 R 成功创建 运行 echo "${pipestatus[1]}"
/system
函数。当我使用命令行时,该命令正常工作。
我尝试在 R 中使用的命令如下所示(我使用的 shell 是 zsh):
system2("false", args = "|true;echo '${pipestatus[1]}'")
经过一些测试,我发现无法正确引用退出状态检查命令,但我想不出正确的方法。
我正确地引用这个命令是问题所在吗?如何从 R 运行 这个 (echo "${pipestatus[1]}"
) 命令?除了使用有问题的命令检查退出状态之外,还有其他选择吗?
您不能在此处使用 zsh 功能,因为 system2
不会调用 shell。
相反,您需要使用原始 system
调用,或者更好的是,显式调用 system2
中的 shell。您还需要在 ${pipestatus[1]}
周围使用双引号而不是单引号以允许扩展——否则 zsh 会将其解释为文字字符串。
system2('zsh', c('-c', shQuote('false|true; echo "${pipestatus[1]}"')))
我需要在 Debian 上检查来自 R 的管道命令的退出状态,例如 here,但无法使用 system2
从 R 成功创建 运行 echo "${pipestatus[1]}"
/system
函数。当我使用命令行时,该命令正常工作。
我尝试在 R 中使用的命令如下所示(我使用的 shell 是 zsh):
system2("false", args = "|true;echo '${pipestatus[1]}'")
经过一些测试,我发现无法正确引用退出状态检查命令,但我想不出正确的方法。
我正确地引用这个命令是问题所在吗?如何从 R 运行 这个 (echo "${pipestatus[1]}"
) 命令?除了使用有问题的命令检查退出状态之外,还有其他选择吗?
您不能在此处使用 zsh 功能,因为 system2
不会调用 shell。
相反,您需要使用原始 system
调用,或者更好的是,显式调用 system2
中的 shell。您还需要在 ${pipestatus[1]}
周围使用双引号而不是单引号以允许扩展——否则 zsh 会将其解释为文字字符串。
system2('zsh', c('-c', shQuote('false|true; echo "${pipestatus[1]}"')))