2016-08-18 8 views
1

私のスクリプトスクリプトで作業ディレクトリが変更されていないのはなぜですか?

#!/bin/bash 

for i in *_TEx_*.dat; 
do 
    file1=$i 
done 

for i in *_TEy_*.dat; 
do 
    file2=$i 
done 

echo file1="$file1" 
echo file2="$file2" 

awk '$0+0 == $0 { printf "%.3f\n", $0/.05 }' "$file1" > ex65536.dat 
awk '$0+0 == $0 { printf "%.3f\n", $0/.05 }' "$file2" > ey65536.dat 

mv *.dat /home/milenko/birrp 

mycd() { 
    cd /home/milenko/birrp 
} 

mycd 

しかし、作業ディレクトリを変更するには、私の指示が間違っている何

[email protected]:~/procmt$ pwd 
/home/milenko/procmt 

+0

これは、スクリプトを実行するサブシェル内の別のディレクトリに移動しているために発生します。終了すると、 'cd 'が実行されていないメインシェルに戻ります。 – fedorqui

+0

サブシェルを生成した対話シェルではなく、スクリプトを実行しているサブシェルに対してwdが変更されます。 –

答えて

1

... 
mycd() { 
    cd /home/milenko/birrp 
    exec /bin/bash 
} 

mycd 

または以下のようにスクリプトを実行してみてください。

. ./yourscript.sh 
関連する問題