新shell出现后,别名丢失了

时间:2012-04-16 06:07:49

标签: linux bash

在linux中登录我的帐户后 - 我可以使用我在.bash_profile文件中创建的所有别名。

但在使用以下命令执行简单脚本(setter.sh)之后:   cleartool setview view_name

所有的别名都迷路了 - 这可能是因为cleartool产生了一个新的shell 查询是:

  1. 如何确定当前产生的shell数量 - 我可以知道我目前处于哪个嵌套级别 - 如果脚本以产生新shell的方式工作吗?

  2. 如何在启动新shell后保留别名值 - 如上所述?

  3. 如果我尝试通过添加源.bash_profile来确保.bash_profile作为脚本的一部分重新执行 - 即使那时 - 别名设置没有发生?。

1 个答案:

答案 0 :(得分:5)

您应该使用.bash_profile进行Google搜索,并且found .bash_profile用于登录 shell,.bashrc用于交互式 shell,并且shell脚本不使用它们。

在shell脚本中,更好地使用函数(您必须定义)而不是别名。

subshells的shell级别可通过SHLVL变量获得。

花些时间阅读Advanced Bash-Scripting Guide