私は非常に単純なスクリプトを実行したいと考えています。自分のコンピューターで svn などのプログラムの最新バージョンを見つけたいだけです。結果を mysvn などの変数にロードしたい
だから私はこのスクリプトを作ります:
#!/bin/sh
mysvn="foobar"
best_ver=0
which -a svn | while read p
do
version=$("$p" --version | grep 'version ' | grep -oE '[0-9.]+' | head -1)
if [[ "$version" > "$best_ver" ]]
then
best_ver=$version
mysvn="$p"
fi
echo $mysvn
done
echo $mysvn
実際には非常に単純です...しかし、XPで実行されているバージョン2.7.10のrxvt(私の疑似Linux端末)では機能しません。最終的な出力文字列はfoobarです。
なぜ私がこの問題を抱えているのか誰か知っていますか?
過去数か月間、いくつかのスクリプトを書いてきましたが、そのような動作に遭遇したのは初めてです。
注:いくつかの変更を加えて、それを機能させる方法を知っています(メイン行を $() に入れるだけです)