Chinaunix

标题: 问一个if语法 [打印本页]

作者: csdemo    时间: 2015-05-29 17:02
标题: 问一个if语法
if head=`git rev-parse --verify --short HEAD 2>/dev/null`; then

if head= 是啥语法呢?


作者: 骑着蜗牛定乾坤    时间: 2015-05-29 17:09
本帖最后由 骑着蜗牛定乾坤 于 2015-05-29 17:14 编辑

if [判断条件];then
   [command]
fi
上面的是if判断语句的写法,而head是变量,head=`git rev-parse --verify --short HEAD 2>/dev/null`作为判断条件,要放在[]里,像这样
[ head=`git rev-parse --verify --short HEAD 2>/dev/null` ] ,[]前后要有空格

回复 1# csdemo


   
作者: csdemo    时间: 2015-05-29 17:13
回复 2# 骑着蜗牛定乾坤

那head= 啥时候是真啥时候是假呢?


   
作者: 骑着蜗牛定乾坤    时间: 2015-05-29 17:17
如果git rev-parse --verify --short HEAD顺利执行,也就是说$?=0为真,否则为假
回复 3# csdemo


   
作者: csdemo    时间: 2015-05-29 17:20
回复 4# 骑着蜗牛定乾坤


   head=0 或者head=1我试过都是符合条件的
并且· ·的执行是把内容赋值给head 比如head=·ls·  head的值是当前目录下的文件列表
作者: liaosnet    时间: 2015-05-29 17:21
回复 5# csdemo


    =  很多时候是赋值  head=1 head=0 都是赋值。。都是成功的。。
作者: csdemo    时间: 2015-05-29 17:27
回复 6# liaosnet


   我也比较偏向这个理解,不过什么时候赋值会失败呢,这样写有意义?
作者: liaosnet    时间: 2015-05-29 17:36
回复 7# csdemo


    我也不知道啊,什么时候赋值会失败~
作者: ly5066113    时间: 2015-05-29 17:38
回复 7# csdemo


和这样是一个意思,git命令执行失败的时候,就会失败
  1. if git rev-parse --verify --short HEAD >/dev/null 2>&1
  2. then
  3.         head=`git rev-parse --verify --short HEAD 2>/dev/null`
  4. fi
复制代码

作者: ly5066113    时间: 2015-05-29 17:41
回复 8# liaosnet


if 判断的是 git 命令的返回值
head 只是获取 git 命令的标准输出
作者: csdemo    时间: 2015-05-29 17:57
回复 10# ly5066113


    果真如此,多谢
作者: 骑着蜗牛定乾坤    时间: 2015-05-31 13:39
同意10楼的说法




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2