答案1
您可以在所使用的每个 shell 的文件中定义该函数~/.*rc
。或者,您可以为该函数以及要在所有 shell 中使用的其他 shell 函数创建一个新文件……例如……
nano shell-functions
我在文件里面定义了我的函数......
hi() { echo "How are you $1?" ; }
保存并退出,然后我编辑我的~/.bashrc
和~/.zshrc
并在每个的末尾添加以下行:
source shell-functions
要不就
. shell-functions
其作用相同。
编辑~/.*rc
文件后,我打开一个新 shell,并且该功能可用:
$ bash
$ hi zanna
how are you zanna ?
$ zsh
% hi zanna
how are you zanna ?
该source
命令读取文件并执行其中的命令在当前 shell 中(与运行脚本不同,./script
脚本会在新的 shell 中执行)。在这种情况下,您需要为正在打开的 shell 定义一个函数,因此您需要包含source
它的文件以使其在 shell 中可用。如果您查看,~/.profile
您可以看到一个配置文件引用另一个配置文件的示例,如下所示:
# if running bash
if [ -n "$BASH_VERSION" ]; then
# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
因此,Ubuntu 中的默认~/.profile
源~/.bashrc
。您还可以source
通过创建一个文件进行测试,我们将其命名为file1
,其中包含一些命令,例如(对于 bash)PS1='I messed up my prompt '
保存、退出,然后在 shell 中键入source file1
,您将看到效果(打开一个新 shell(例如,键入bash
或打开一个新的终端窗口)并且一切都将恢复正常)...