liuhongyu 发表于 2016-11-22 02:38:07

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.logDesktop
#
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索引页
  磨砺技术珠矶,践行数据之道,追求卓越价值
页: [1]
查看完整版本: Linux脚本中的 &&