我想做一个非常简单的脚本:只想在我的电脑上找到一个程序的最新版本,比如 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下运行的rxvt(我的伪linux终端)版本2.7.10下不起作用:最终输出字符串是foobar。
有人知道我为什么会遇到这个问题吗?
过去几个月我一直在写一些脚本,这是我第一次遇到这种行为。
注意:我知道如何使它工作,只需进行一些更改(只需将主线放入 $() )