2016-06-02 9 views
1

kshシェルを使用しています。私は定義された別名から情報を取得する必要があり、私はtest.sh やランニングtest.sh上記のようにスクリプトを保存したシェルスクリプトに渡すとパラメータが変更されます

#!/usr/bin/ksh 
source ~/.profile 
echo "parameter : $1" 
alias | grep hello 

コードの下に使用しています、私は、出力の下に取得しています:

./test 324 
parameter : autologout 
hello='Hello, How are you' 

私の問題は、パラメータとして324を渡したとき、なぜ自動ログアウトが$1になるのでしょうか? どうすればこの問題を解決できますか?

答えて

2

あなたは自分の位置パラメータを変更する可能性があるsourceを行う前に

#!/usr/bin/ksh 

arg1="$1" 
source ~/.profile 
echo "parameter : $arg1" 
alias | grep hello 
2

あなたは〜/ .profileファイルにsetコマンドを持っていないことを確認してくださいパラメータ$1を保存することができます。

#!/usr/bin/ksh 
source ~/.profile 
set "new" 
echo "parameter : $1" 
alias | grep hello 

>./script.ksh foo  
parameter : new 

ここでパラメータは常に「新規」です。 sourceコマンドをコメントアウトし、エラーがまだ存在するかどうかを確認してください。はいの場合は、 "〜/ .profile"内のsetコマンドを検索してください

関連する問題