如何使用&&amp ;;执行多个命令新行中的运算符(不是所有单行):shell脚本

时间:2017-05-30 08:38:22

标签: bash shell

我使用&&amp ;;安装多个软件包如果前一个操作失败,则停止执行后续操作的操作符。 &安培;&安培;当所有单行写入时,函数正在工作。

但是当他们逐行写作时,&&功能不起作用,我收到错误。 我的代码是这样的:

var text = selectList.Where(q => q.Selected == true).First().Text;

错误是:

yum -y install XXZ \
&& yum -y install rsync \
&& yum -y install libxml2-devel \
&& yum -y install ntp

如果使用&&&&当命令逐行写入(不是单行)时,运算符。?

请帮助!

3 个答案:

答案 0 :(得分:0)

$?存储最后一个命令的退出代码。您可以在脚本中执行以下操作:

yum -y install XXZ
if [[ $? != "0" ]]   ## exit code other than zero 
then
    ## your code for failure
    exit
fi
yum -y install rsync
if [[ $? != "0" ]]     
then
    ## your code for failure
    exit
fi

对所有包都这样做。 我建议你制作一个数组并使用for循环。 退出代码零意味着成功。希望这有帮助。

答案 1 :(得分:0)

yum -y install XXZ &&
yum -y install rsync &&
yum -y install libxml2-devel && 
yum -y install ntp

yum -y install XXZ && \
yum -y install rsync && \
yum -y install libxml2-devel && \ 
yum -y install ntp

我正在使用NotePad ++。将EOL转换从Windows修改为格式化为UNIX \ OSX后。执行上面的代码。 编辑 - > EOL转换 - > UNIX \ OSX格式。并保存文件。

答案 2 :(得分:0)

除了其他解决方案,您还可以使用:

if ! yum -y install XXZ ; then
    # command failed, do what you want
    exit
fi
if ! yum -y install rsync ; then
    # command failed, do what you want
    exit
fi