免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: geoffrey
打印 上一主题 下一主题

如何获得一个进程里CMD的绝对路径,SOS!!!! [复制链接]

论坛徽章:
0
11 [报告]
发表于 2003-08-19 15:03 |只看该作者

如何获得一个进程里CMD的绝对路径,SOS!!!!

谢谢,我试试

论坛徽章:
0
12 [报告]
发表于 2003-08-19 15:12 |只看该作者

如何获得一个进程里CMD的绝对路径,SOS!!!!

还有问题,用./install.sh执行会出错。不过俺已经晕了。   
-------------------------------------------
自己测了一下,错太多了,重编比较好。

论坛徽章:
0
13 [报告]
发表于 2003-08-19 15:34 |只看该作者

如何获得一个进程里CMD的绝对路径,SOS!!!!

p="$PWD"
x="`dirname $0|sed 's/^\.//'`"
echo $x
echo "x"`echo $p|awk -F/ '{print $2}'`
echo "x"`echo $x|awk -F/ '{print $2}'`

if [ "x"`echo $p|awk -F/ '{print $2}'` != "x"`echo $x|awk -F/ '{print $2}'` ]
then
   if [ "M$x" = "M" ]
   then
                   z=$p
   else
                   directory=`ls $p|grep $x`
            if [ "M$directory" = "M" ]
            then
                    z=$x
            else
                    z=`echo $p/$x`
            fi
   fi
else
   y=`echo $x|sed "s;$p;;"`
   z=`echo $p/$y`
fi
echo $z
我改了一下,不过还是有点问题
x="`dirname $0|sed 's/^\.//'`"
上面语句能不能把"."和"/"都替换掉,如果这样就是对的了
谢谢

论坛徽章:
0
14 [报告]
发表于 2003-08-19 15:38 |只看该作者

如何获得一个进程里CMD的绝对路径,SOS!!!!

我说错了,上面的方法只是对/a/b/两层目录有用。sorry

论坛徽章:
0
15 [报告]
发表于 2003-08-19 15:41 |只看该作者

如何获得一个进程里CMD的绝对路径,SOS!!!!

晕也要回复!!!
刚才好象绕远了。
其实大部分时候dirname $0的值都是正确的。只有在当前目录下用./install.sh时才出错。所以判断一下就行了。

论坛徽章:
0
16 [报告]
发表于 2003-08-19 15:49 |只看该作者

如何获得一个进程里CMD的绝对路径,SOS!!!!

但是这两种方式是不一样的./cdrom/install.sh和cdrom/install.sh如果当前目录是/tmp

论坛徽章:
0
17 [报告]
发表于 2003-08-19 16:00 |只看该作者

如何获得一个进程里CMD的绝对路径,SOS!!!!

但是这两种方式是不一样的
   如:当前目录位/tmp
    ./cdrom/install.sh
    cdrom/install.sh结果得出的目录是/cdrom和cdrom

论坛徽章:
0
18 [报告]
发表于 2003-08-19 16:15 |只看该作者

如何获得一个进程里CMD的绝对路径,SOS!!!!

  1. 列一下可能的情况:
  2. 当前目录     启动方法         $PWD值          dirname值
  3. /a/b/c          ./x.sh                  /a/b/c                        .
  4. /a/b             ./c/x.sh                /a/b                         /c
  5. /                   /a/b/c/x.sh            /                         /a/b/c
  6. /a/b/c/d       ../x.sh                /a/b/c/d                     ..
复制代码
   
还有吗?

论坛徽章:
0
19 [报告]
发表于 2003-08-19 16:22 |只看该作者

如何获得一个进程里CMD的绝对路径,SOS!!!!

p="$PWD"
x="`dirname $0|sed 's/^\.//'`"
echo $x
echo "x"`echo $p|awk -F/ '{print $2}'`
echo "x"`echo $x|awk -F/ '{print $2}'`

if [ "x"`echo $p|awk -F/ '{print $2}'` != "x"`echo $x|awk -F/ '{print $2}'` ]
then
   if [ "M$x" = "M" ]
   then
                   z=$p
   else
                   y=`echo $x|awk -F/ '{print $2}'`
                  
                   if [ "M$y" != "M" ]
                   then
                           x=$y
                   fi
                  
                   echo $x
                  
                   z=`echo $p/$x`
                   echo $z
                  
                   install_file=`find $z -name install.sh`
                  
                   len=`expr "$install_file" : '.*'`
                if [ "$len" -le "0" ]
                then
                        z=$x
                fi
   fi
else
   y=`echo $x|sed "s;$p;;"`
   z=`echo $p/$y`
fi

我检验了上面代码是正确的,不过方法太笨了,希望老兄帮我看看,有没有更好的方法。
谢谢你的帮助!!!!!!

论坛徽章:
0
20 [报告]
发表于 2003-08-20 08:45 |只看该作者

如何获得一个进程里CMD的绝对路径,SOS!!!!

不好意思,太笨了,不太明白什么意思!
无论你在那个目录下执行x.sh这个脚本,x.sh的绝对路径不一样么,不都是/a/b/c么??
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP