Bash 终端外壳中的别名问题

Bash 终端外壳中的别名问题,bash,macos,shell,terminal,alias,Bash,Macos,Shell,Terminal,Alias,我将/bin/bash设置为终端macos中的默认shell,未找到用“~/.bashrc”不工作命令编写的别名 但如果我在Terminal/bin/bash命令中编写,我将切换到新的bash3.2 shell,然后我就可以使用它了 有没有其他的“.bashrc”我应该写下我的别名 另外,我使用终端首选项设置/bin/bash默认值 还有chsh-s/bin/bash/command。您希望/bin/bash-l像使用登录shell一样运行。有关更多信息,请参阅man bash的调用部分。您希望

我将/bin/bash设置为终端macos中的默认shell,未找到用“~/.bashrc”不工作命令编写的别名

但如果我在Terminal/bin/bash命令中编写,我将切换到新的bash3.2 shell,然后我就可以使用它了

有没有其他的“.bashrc”我应该写下我的别名

另外,我使用终端首选项设置/bin/bash默认值 还有chsh-s/bin/bash/command。

您希望/bin/bash-l像使用登录shell一样运行。有关更多信息,请参阅man bash的调用部分。

您希望/bin/bash-l像使用登录shell一样运行。有关更多信息,请参阅man bash的调用部分。

终端启动登录shell,而不是普通的交互式shell,因为终端本身不是从从登录shell继承环境的shell运行的

普通交互式shells源代码.bashrc;login Shell源于它找到的.profile、.bash\u login或.bash\u配置文件中的第一个。我建议直接从.bash_配置文件中查找.bashrc

当您直接运行/bin/bash时,别名会起作用,因为这不会启动另一个登录shell,因此。bashrc是按预期来源的。

终端启动登录shell,而不是普通的交互式shell,因为终端本身不是从从登录shell继承环境的shell运行的

普通交互式shells源代码.bashrc;login Shell源于它找到的.profile、.bash\u login或.bash\u配置文件中的第一个。我建议直接从.bash_配置文件中查找.bashrc


当您直接运行/bin/bash时,别名会起作用,因为这不会启动另一个登录shell,因此.bashrc的来源与预期一致。

如上所述,如果您将以下行添加到主目录中的.profile中:

source ~/.bashrc

保存并创建新的终端会话后,如果将以下行添加到主目录中的.profile,它将自动使用别名设置为.bashrc提供源代码。

如上所述:

source ~/.bashrc

保存并创建新的终端会话后,它将自动使用别名设置为.bashrc提供源代码。

来自bash手册页:对于几乎所有用途,别名都会被shell函数取代。请改用函数。@williampersell:如果.bashrc完全不是源代码,那么它也不会读取函数。@eduard:首先验证.bashrc是否由您的终端源代码;现在看来,情况并非如此。在.bashrc上放置一个set-x,然后打开一个新的终端会话。另外,在bash shell中,echo$bash\u VERSION和echo$-说了什么?@user1934428这是正确的。我的评论不是为了回答这个问题,如果是的话,那就是一个答案!我只是对不应再使用别名这一事实发表评论。它们实际上已经被弃用了几十年。从bash手册页上看:对于几乎所有的用途,别名都被shell函数所取代。请改用函数。@williampersell:如果.bashrc完全不是源代码,那么它也不会读取函数。@eduard:首先验证.bashrc是否由您的终端源代码;现在看来,情况并非如此。在.bashrc上放置一个set-x,然后打开一个新的终端会话。另外,在bash shell中,echo$bash\u VERSION和echo$-说了什么?@user1934428这是正确的。我的评论不是为了回答这个问题,如果是的话,那就是一个答案!我只是对不应再使用别名这一事实发表评论。它们实际上已经被弃用了几十年。这不会运行。bashrc。从bash手册页:当bash作为交互式登录shell或带有-login选项的非交互式shell调用时,它首先读取并执行文件/etc/profile中的命令(如果该文件存在)。读取该文件后,它会按顺序查找~/.bash\u配置文件、~/.bash\u登录名和~/.profile,但不会运行.bashrc。从bash手册页:当bash作为交互式登录shell或带有-login选项的非交互式shell调用时,它首先读取并执行文件/etc/profile中的命令(如果该文件存在)。读取该文件后,它将按顺序查找~/.bash\u配置文件、~/.bash\u登录名和~/.profile