将环境变量的值传递给程序?

Tim*_*Tim 0 bash environment-variables

当我pdfannotextractor.pl在 bash 中运行 perl 脚本时,我想设置TEXMFVAR脚本所需的变量的值,并将其传递给脚本。

我用谷歌搜索,并认为我找到了一个解决方案:

$ TEXMFVAR=/usr/local/texlive/2014/texmf-var sudo /usr/local/texlive/2014/texmf-dist/scripts/pax/pdfannotextractor.pl --install
Run Code Online (Sandbox Code Playgroud)

但它TEXMFVAR在脚本中似乎仍然是空的,因为它$TEXMFVAR在我当前的目录下创建了一个目录。我很困惑。

$ ls \$TEXMFVAR/*
$TEXMFVAR/ls-R

$TEXMFVAR/scripts:
pax
Run Code Online (Sandbox Code Playgroud)

我需要export变量吗?

这是环境变量的使用问题吗?

注意:我原来的问题是关于 texlive 和这里https://tex.stackexchange.com/questions/243889/error-installing-pdfbox-library-for-pax-package

cas*_*sey 5

sudo清理环境,因此潜在的有害变量不会传递给以超级用户身份运行的进程。您可以使用-E--preserve-env标志将此行为更改为 sudo。

  • @Tim `export` 是一个内置的 shell,与 `sudo` 对环境的作用无关。只有`sudo` 的`-E` 选项会影响它。`export` 在这里不相关。 (2认同)