创建别名-正确的语法

创建别名-正确的语法

有人能告诉我以下语法是否正确吗?我将 PATH 变量添加到前面,然后启动 houdini

alias houdini_run='pathold=$PATH; PATH=/home/jim/yt-conda/bin:/home/jim/yt-conda/sbin; /opt/hfs16.5.595/bin/hindie-bin; PATH=$pathold'

问题是当我运行它时,houdini 确实启动了,但是我看到很多缺少的包错误,即使它们确实安装在上面的 PATH 中定义的 bin 目录中。

IE

sh: 1: grep: not found 

sh: 1: awk: not found 

sh: 1: ls: not found

答案1

如果您希望在$PATH运行所需程序时仅包含特定路径,那么您可以这样做:

PATH=/path/to/bins /opt/my_program

就你的情况而言:

PATH=$HOME/yt-conda/bin:$HOME/yt-conda/sbin /opt/hfs16.5.595/bin/hindie-bin

设置别名如下:

alias myprg="PATH=$HOME/yt-conda/bin:$HOME/yt-conda/sbin /opt/hfs16.5.595/bin/hindie-bin"

现在,当您使用myprg它时,它会设置$PATH为您想要的路径,然后运行您的程序,并且$PATH在您使用完程序后保持环境不变。

答案2

PATH被 shell 用来查找要执行的程序(grepawkls)。

通过设置,PATH=/home/jim/yt-conda/bin:/home/jim/yt-conda/sbin您可以告诉 shell 仅查看那些目录。

设置你的PATH别名是不明智的。你只需要做一次。输入类似

PATH=$PATH:/home/jim/yt-conda/bin:/home/jim/yt-conda/sbin  

在你的~/.bashrc

相关内容