在 i3 中运行调用 R 的 bash 脚本不起作用,但直接从终端运行它可以。不确定问题是否出在 i3 上

在 i3 中运行调用 R 的 bash 脚本不起作用,但直接从终端运行它可以。不确定问题是否出在 i3 上

我有一个调用 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,已完全更新。

相关内容