2011-08-05 6 views
0

ユーザーが特定のディレクトリを通過するときに環境変数を作成するスクリプトを実行します。スクリプトが存在するディレクトリに切り替えるときにunixスクリプトの実行をトリガーする方法

+3

「cd」のオーバーロードやシェルの修正が不十分な場合は、これを行うことはできません。 – pyroscope

+0

あなたは "オーバーロード"することができますか?それは組み込みです。エイリアスを使用することはできますが、どのようにパラメータを渡すつもりですか? –

答えて

0

これを使用すると予想される実際の例があれば助けになりますが、ヘッドラインと質問本体に基づいて、これはどのように開始するのですか?

cat specialVarSetter.bash 
#! /bin/bash 

targetDir=/path/to/special/dir 
cd $1 

if [[ $PWD == "$targetDir" ]] ; then 
    userVar1=xxxx 
    userVar2=yyyy 
fi 

#your real stuff goes after this 
runProgram 1 
runProgram 2 

chmod 755 specialVarSetter.bash 
specialVarSetter.bash /path/to/special/dir 

のような使用あなただけのユーザーが「DIR」を入力したい場合は、あなたがbaseDir=/path/to/specialのようなものを追加し、cd $baseDir/$1に変更することができます。テストが実行され、変数が設定されます。

また、私はcsh/tcshがそのような機能をネイティブに持っていると思います。もしtcshがあれば、zshもそれを持っています。それはあなたのユーザー環境にどれだけのコントロールがあるかによって異なります。 (私はCDPATHのような名前のものか、それともzPの人ですか、少し助けてくれると思っています)

私はこれが役立つことを望みます。

関連する問題