0

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

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

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

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

  2. 启动新外壳后如何保留别名值 - 就像上述情况一样?

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

4

1 回答 1

5

你应该在谷歌上搜索过.bash_profile,你会发现.bash_profile是用于登录shell,.bashrc用于交互式shell,并且 shell 脚本不使用它们。

在 shell 脚本中,使用函数(必须定义)比使用别名更好。

外壳的外壳级别可通过SHLVL变量获得。

花时间阅读Advanced Bash-Scripting Guide

于 2012-04-16T06:40:01.887 回答