如何/在哪里将 Bash 脚本保存在我的计算机上,以便我的终端可以执行更多命令?



Terminal/Bash 有一组默认的命令,例如 cp、echo、grep,...

我希望能够添加一个命令,例如我可以执行并获得结果的"hello",而不是-bash:hello:找不到命令

您可以将自定义函数添加到.bashrc或者如果您指的是实际的独立应用程序,那么您可以创建一个目录(例如~/bin(,然后将其添加到.bash_profile.profile中的$PATH变量中,并将任何独立应用程序放在所述~/bin目录中。

Greg的Wiki是Bash功能和其他方面的信息的一个非常可靠的来源,还有Bash手册和Bash Hackers Wiki。

注意:

如果你有一个.profile你仍然可以使用.bash_profile,如果你选择不使用.bash_profile,请确保将Bash的任何代码封装在if语句中,因为其他shell使用.profile

if [ -n "$BASH_VERSION" ]; then # BASH_VERSION is defined, therefore we are using BASH
# BASH CODE
fi

为了简化事情,您甚至可以创建函数,允许您根据正在运行的 shell 轻松运行单行代码:

ifbash()
{
if [ -n "$BASH_VERSION" ]; then
$@
else
return 1
fi
}
ifzsh()
{
if [ -n "$ZSH_VERSION" ]; then
$@
else
return 1
fi
}
# You can use these to conditionally execute commands
# here's a function that prints the type/blueprint of a function
fn-printout()
{
for y in "$@"; do
ifbash type "$y" || ifzsh whence -f "$y"
done
}

(注意:虽然使用 Bash 时不建议使用[ TEST ],但其他 shell 可能无法理解[[ TEST ]];这也是为什么最好简单地使用.bash_profile而不是.profile的原因之一(

正如一些评论中所指出的,虽然你可以在.bashrc中定义诸如$PATH这样的变量,但不一定建议这样做,因为这会导致每次启动 Bash 的交互式会话时重新设置所述变量,从而导致每次启动新的交互式会话时不必要的计算步骤——最好在.bash_profile中存储只需要发生一次(例如登录时(的变量和其他环境更改, 或.profile,然后可以使用bash -l根据需要重新获取资源。

你只需要修改你当前的 PATH 并优先考虑你更关心的路径,例如,你可以在你的$HOME/mycommands中有一个目录和一个像这样的 PATH:

PATH="$HOME/mycomands:/usr/local/bin:/usr/bin" ...

$HOME/mycommands中,您可以首先调用自定义命令,而不是系统上定义的命令

相关内容

  • 没有找到相关文章

最新更新