我有一个调用 R 的 bash 脚本,并且映射到我的 i3 配置中的键盘快捷键,如下所示:
bindsym $mod+q exec --no-startup-id test-r-not-working-from-within.sh
这是一个简单且易于验证的例子,因为当 R 会话成功执行时,它会在 /tmp/ 中创建一个以“.testR”结尾的文件,并且还会创建一个名为 的test.testshell
文件/tmp/
。
脚本确实运行了,可以通过创建为 的文件进行验证/tmp/test.testshell
,但应该运行的 R 会话脚本并未执行。但是,从终端运行脚本时,R 会话会与 shell 命令一起执行。
#!/bin/bash
tmp1=$(mktemp)
echo '
library(data.table)
# troubleshoot
tmp1 <- tempfile(tmpdir="/tmp", fileext=".testR")
fileConn<-file(tmp1)
writeLines("test this is a test", fileConn)
close(fileConn)
' >> $tmp1
# none of these two ways of doing it works when called from i3
R < $tmp1 --vanilla
Rscript $tmp1 --vanilla
echo 'test.testshell' > /tmp/test.testshell
notify-send "test-r-not-working-from-within.sh"
我以为这可能与 $PATH 有关,但是,运行结果为:
which R
给出:
/usr/bin/R
所以它应该在 PATH 中,对吗?但是,手动将其添加到PATH
我的配置文件中.bashrc
也没有任何作用:
export PATH="/usr/bin/R:~/.npm-global/bin:/usr/local/stata17:$HOME/.yarn/bin:$HOME/.cargo/bin:/home/emil/bin:/home/emil/.local/bin:$PATH"
我不明白。有什么想法吗?
我在使用 Manjaro Linux,已完全更新。