我.sh
在我的主目录中编写了一个带有扩展名的简单脚本,我可以直接在我的主目录中运行该脚本,但我想从我所在的每个目录运行该脚本。我该怎么办?
以交互方式,您始终可以通过~/yourscript.sh
在命令行上键入来运行您的脚本,但这是非常有限的,特别是如果您想编写更多调用您已经编写的脚本的脚本时。
一种更加集成和灵活的方法是将所有脚本放在一个目录中,然后将该目录添加到您的PATH
环境变量中。
执行此操作后,您将能够键入yourscript.sh
,无论您在哪个目录中,shell 都会找到您的脚本并执行它。
这是通常的做法:
bin
在您的主目录下创建一个目录并将mv
您的脚本放入其中。chmod +x
)。PATH
环境变量包含您的$HOME/bin
目录。在某些系统上,默认情况下~/.profile
会自动将您的$HOME/bin
目录添加到该目录中PATH
,因此请~/.profile
在修改前检查您的目录。让我用一些脚本来说明:
mkdir ~/bin
mv ~/*.sh ~/bin
chmod +x ~/bin/*
if ! grep 'PATH=.*HOME/bin' ~/.profile
then
echo 'export PATH="$HOME/bin:$PATH"' >> ~/.profile
fi
. ~/.profile
echo "$PATH" # you should see your bin directory
cd /tmp # change to another random directory
type myscript.sh # see if the shell finds your scripts
Run Code Online (Sandbox Code Playgroud)
如果您在 中看到您的bin
目录PATH
,那么最好注销并重新登录并更改到另一个目录并type yourscript.sh
再次执行以确保一切设置正确。