如果在Bash中工作,我怎么能这样做?

Dra*_*gos 4 linux bash shell

在bash中如何使这样的结构工作:

if (cp /folder/path /to/path) && (cp /anotherfolder/path /to/anotherpath)
then
  echo "Succeeded"
else
  echo "Failed"
fi
Run Code Online (Sandbox Code Playgroud)

if应该测试$?返回每个命令的代码并用&&绑定它们.

我怎样才能在Bash中做到这一点?

gho*_*g74 13

if cp /folder/path /to/path /tmp && cp /anotherfolder/path /to/anotherpath ;then
  echo "ok"
else
  echo "not"
fi
Run Code Online (Sandbox Code Playgroud)

  • @Dragos,礼貌的下一步是正式接受其中一个答案. (2认同)

Mic*_*yan 8

cp /folder/path /to/path && cp /anotherfolder/path /to/anotherpath
if [ $? -eq 0 ] ; then
    echo "Succeeded"
else
    echo "Failed"
fi

  • @Dragos:最后一个命令,在这种情况下是*complex*命令,它是`cp && cp`.如果第一个退出非零$?得到了.如果第二个退出非零然后$?得到了.否则$?得到零(并且都退出零).但这是一个无用的$?因为命令可以直接放在`if`中. (2认同)