0

Linuxで自分のアカウントにログインした後、.bash_profileファイルで作成したすべてのエイリアスを使用できます。

しかし、次のコマンドを使用して簡単なスクリプト(setter.sh)を実行した後:cleartool setview view_name

すべてのエイリアスが失われています-これは、cleartoolが新しいシェルを生成するためである可能性がありますクエリは次のとおりです。

  1. 現在スポーンされているシェルの数を確認する方法(現在どのネストレベルにあるかを知ることができますか?)スクリプトが新しいシェルをスポーンするように機能するかどうか。

  2. 新しいシェルを起動した後にエイリアス値を保持する方法-上記の場合のように?

  3. ソース.bash_profileを追加して、スクリプトの一部として.bash_profileが再実行されるようにしようとすると、それでもエイリアス設定は行われません。

4

1 に答える 1

5

あなたはグーグルで検索.bash_profileしたはずであり、それはログインシェル用であり、インタラクティブシェル用であり、シェルスクリプトはそれらを使用していないことがわかりました..bash_profile.bashrc

シェル スクリプト内では、エイリアスよりも関数 (定義する必要があります) を使用することをお勧めします。

サブシェルのシェル レベルは、SHLVL変数を通じて利用できます。

時間を取ってAdvanced Bash-Scripting Guideを読んでください。

于 2012-04-16T06:40:01.887 に答える