Linux脚本中的 &&

磨砺技术珠矶,践行数据之道,追求卓越价值  

回到上一级页面:PostgreSQL杂记页    回到顶级页面:PostgreSQL索引页

作者:高健@博客园 luckyjackgao@gmail.com

PostgreSQL的configure 脚本中有:

if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
  emulate sh
  NULLCMD=:
  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
  # is contrary to our usage.  Disable this feature.
  alias -g '${1+"$@"}'='"$@"'
  setopt NO_GLOB_SUBST
else
  case `(set -o) 2>/dev/null` in
  *posix*) set -o posix ;;
esac

fi

首先,对其中的 && 进行了解。

&& 有两种含义:

一个是 逻辑与。

这里是另一个含义:如果前面的命令正确执行,那么后面的命令也将执行。否则后面的命令不执行。

简单验证如下:

#abc && ls
bash: abc: command not found
#
#pwd && ls
/root
install.log  Desktop
#
test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; 中,
test -n "${ZSH_VERSION+set}" 是一个命令,如果它执行成功,则
(emulate sh) >/dev/null 2>&1;也将执行。

而 test -n "${ZSH_VERSION+set}" 返回空值,相当于失败。
#test -n "${ZSH_VERSION+set}
#

#test -n "${ZSH_VERSION+set}  && ls
#
 

作者:高健@博客园 luckyjackgao@gmail.com

回到上一级页面:PostgreSQL杂记页    回到顶级页面:PostgreSQL索引页

磨砺技术珠矶,践行数据之道,追求卓越价值  

posted @ 2012-07-19 09:30  健哥的数据花园  阅读(3981)  评论(0编辑  收藏  举报