以下のようなラッパースクリプトがありmy_mv.sh
ます(bashを使用しています):
#/bin/bash
function my_mv(){
FILE="${@: -1}" # bash or ksh,zsh
echo $FILE
if [ -f $FILE ];
then
mv -i $@
else
mv $@
fi
}
スクリプトとして使用し、のように直接実行すると./my_mv.sh file1 file2
、結果は期待どおりです。ただし、関数 my_mvを入れ~/.bashrc
てソースにすると、無限ループが発生します。では、2 つの方法の違いは何でしょうか。スクリプトを正しく変更するにはどうすればよいですか?
ところで、zsh を使用すると、2 つのアプローチで同様の結果が得られます。