如何防止R系统命令语法错误

How to prevent R system command syntax error

我正在尝试运行一个类似于

的命令
> system("cat <(echo $PATH)")

在 R 或 Rstudio 中 运行 时失败,并显示以下错误消息:

sh: -c: line 0: syntax error near unexpected token `('
sh: -c: line 0: `cat <(echo $PATH)'

但是,如果我在命令行上 运行 它工作正常:

$ cat <(echo $PATH)
[...]/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin

我检查过我使用的 shell 是 bash 使用 system("echo $SHELL")。谁能帮我解决这个问题?

此语法适用于 bash 但不适用于 sh。 $SHELL 环境变量并不一定意味着正在使用 shell。 echo [=13=] 将显示您的 shell.

system("echo [=10=]")
#> sh

你可以强制bash这样使用

system("bash -c 'cat <(echo $PATH)'")
#> /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin