新shell出现后,别名丢失了

Ann*_*nna 0 linux bash

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

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

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

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

  2. 如何在启动新shell后保留别名值 - 就像上面的情况一样?

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

Bas*_*tch 5

你应该用Google搜索.bash_profile,你会发现.bash_profile是针对登录 shell,.bashrc是针对交互式 shell,而且shell脚本不使用它们.

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

壳的shell级别可通过SHLVL变量获得.

花点时间阅读Advanced Bash-Scripting Guide.