免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2148 | 回复: 3
打印 上一主题 下一主题

求救,关于configure文件中的一段代码 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-09-27 13:17 |只看该作者 |倒序浏览
在看configure文件的时候,有一段代码:
# The user is always right.
if test "${PATH_SEPARATOR+set}" != set; then
  PATH_SEPARATOR=:
  (PATH='/bin;/bin'; FPATH=$PATH; sh -c >/dev/null 2>&1 && {
    (PATH='/bin:/bin'; FPATH=$PATH; sh -c >/dev/null 2>&1 ||
      PATH_SEPARATOR=';'
  }
fi

我基本上理解其含义是:如果没有定义PATH_SEPARATOR,则执行  
PATH_SEPARATOR=:
  (PATH='/bin;/bin'; FPATH=$PATH; sh -c >/dev/null 2>&1 && {
    (PATH='/bin:/bin'; FPATH=$PATH; sh -c >/dev/null 2>&1 ||
      PATH_SEPARATOR=';'
  }
其中PATH='/bin;/bin';是赋值操作
    FPATH=$PATH;是赋值操作
    >/dev/null 2>&1是不显示输出结果和错误
    sh -c :是什么意思?
    PATH_SEPARATOR=:是一行写不下的意思吗?

论坛徽章:
0
2 [报告]
发表于 2011-09-27 13:22 |只看该作者
回复 1# xxq31217


    SEPARATOR   单词意思知道吗

论坛徽章:
1
天秤座
日期:2013-10-23 13:20:42
3 [报告]
发表于 2011-09-27 15:35 |只看该作者
-c str
Read commands from string str.
c就是command的意思

论坛徽章:
0
4 [报告]
发表于 2011-09-28 19:05 |只看该作者
再谈谈,个人理解:
首先把路径分隔符PATH_SEPARATOR赋值为: 即语句 PATH_SEPARATOR=:
因为大多数linux下的系统,路径分隔符都是:
当然有例外,比如dos
然后如果
        (PATH='/bin;/bin'; FPATH=$PATH; sh -c  :)>/dev/null 2>&1

            (PATH='/bin:/bin'; FPATH=$PATH; sh -c  :)>/dev/null 2>&1
都能执行成功,说明该系统;、:都能认可(有这样的系统吗?)这样 PATH_SEPARATOR还是:
如果
        (PATH='/bin;/bin'; FPATH=$PATH; sh -c  :)>/dev/null 2>&1   能执行成功
但      (PATH='/bin:/bin'; FPATH=$PATH; sh -c  :)>/dev/null 2>&1  不能执行成功
这说明系统是把;而不是:识别为路径分隔符,因此就执行||   PATH_SEPARATOR=';'
           
          上面判断路径识别符的代码,与《PHP源码之configure文件》一文中的另一种写法可相互印证:
if test "X${PATH_SEPARATOR+set}" != Xset; then   
    UNAME=${UNAME-`uname 2>/dev/null`}   
    case X$UNAME in   
        *-DOS) lt_cv_sys_path_separator=';' ;;   
        *)     lt_cv_sys_path_separator=':' ;;   
    esac   
    PATH_SEPARATOR= $lt_cv_sys_path_separator
fi
摘自
http://www.oschina.net/code/explore/wget-1.9/libtool.m4
http://www.oschina.net/code/explore/php-5.2.15/aclocal.m4
但是,第一种写法,实在只知道大概意思,具体不清楚怎么执行的
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP