|
发表于 2007-1-25 20:26:40
|
显示全部楼层
bash 的比较 不支持"^/",
用
if [ "${s_dir#/}" != "${s_dir}" ]
then
绝对路径;
fi
Post by superspecter007
请教:在bash下,如何判断输入路径是否为绝对路径?
我用的方法是通过判断输入是否为“/”来确定输入是否为绝对路径。
但是测试时,不论输入的是绝对路径还是相对路径,都提示不是绝对路径。
以下是开头的一段:
#if [ $s_dir != "^/" ]
if [ $s_dir != "^//" ]
then
echo "错误的输入:"
echo " $s_dir不是绝对路径"
if [ $d_dir != "^/" ]
then
echo " $d_dir不是绝对路径"
echo "因为您错误的输入,程序将退出。"
echo "您可以检查正确的输入后从新运行本程序。"
break
fi
echo "因为您错误的输入,程序将退出。"
echo "您可以检查正确的输入后从新运行本程序。"
break
以下是测试时的两个输出:
#1
错误的输入:
/home不是绝对路径
./d不是绝对路径
因为您错误的输入,程序将退出。
您可以检查正确的输入后从新运行本程序。
#2
错误的输入:
/home不是绝对路径
/mnt不是绝对路径
因为您错误的输入,程序将退出。
您可以检查正确的输入后从新运行本程序。
非常明显,"/home"和"/mnt"是绝对路径,"./d"是相对路径。
哪位大哥帮忙看看是哪出的错?
如果是我的测试方法不对,请给出正确的测试方法,谢谢。 |
|