如何防止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
我正在尝试运行一个类似于
的命令> 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