2012-04-16 53 views
0

在linux中登錄到我的帳戶後 - 我可以使用我在.bash_profile文件中創建的所有別名。新shell彈出後別名丟失

但我執行一個簡單的腳本(setter.sh)與命令後: cleartool的setView VIEW_NAME

所有別名都迷路 - 這可能是可能是因爲cleartool產生一個新的外殼 查詢:

  1. 如何確定有多少炮彈目前正在催生了 - 我可以知道在該嵌套層次是我目前在 - 如果一個腳本以這樣的方式就是滋生新的shell工作?

  2. 如何在啓動新shell後保留別名值 - 就像上面的情況一樣?

  3. 如果我試圖通過添加源.bash_profile確保.bash_profile get作爲腳本的一部分重新執行 - 即使這樣 - 別名設置不會發生。

回答

5

你應該用Google搜索上.bash_profile,你將有found.bash_profile登錄殼,.bashrc互動炮彈,而shell腳本不使用它們。

在shell腳本中,比別名更好的使用函數(您必須定義)。

subshells的shell級別可通過SHLVL變量獲得。

花時間閱讀Advanced Bash-Scripting Guide

+1

+1也可以導出函數,使它們出現在子殼體中:'export -f function_name' – 2012-04-16 15:36:33