我想连续执行两条独立于前一条的失败或成功的命令,所以我知道||
和&&
将不起作用。在这种情况下我能做什么?如果成功,我希望shell等待第一个命令完成;因此;
也不起作用。Zsh独立于成功执行两行连续执行两条命令
编辑:我很抱歉,外壳是zsh
,我运行一个shell脚本发送到不同的屏幕命令,如下图所示:
#! /bin/zsh
### Script for running everything in screens ###
### System argument screen name suffix ###
echo You have the following screens running:
screen -ls
sigarr=(NM1 NM2 NM3 Scenario4 Scenario6)
puarr=(50PU 140PU)
lumarr=(30 300 3000)
echo Please type 1 for 50PU samples and 2 for 140PU samples
read PU
if [[ $PU -ne 1 && $PU -ne 2 ]] ; then
echo You have to enter 1 or 2
return 1
fi
echo Please type 1 for 300fb-1 and 2 for 3000fb-1
read lum
if [[ $lum -ne 1 && $lum -ne 2 ]] ; then
echo You have to enter 1 or 2
return 1
fi
if [ $PU = 1 ]; then
let "lum = $lum + 1"
#echo $lum
fi
ex NEWrunReader.py <<EOEX
:43s/Lumi.*/Lumi=$lumarr[lum]/
:x
EOEX
echo Compiling the reader file!!!
root -l << EOF
.L readerSummerStd.C+
EOF
if [ $PU = 2]; then
let "lum = $lum + 1"
fi
echo Press any key to proceed or Ctrl+C to abort!
read
for sigind in $sigarr
do
screen -dmS "${sigind}_${lumarr[lum]}_${puarr[PU]}_${1}"
sleep 0.1
screen -S "${sigind}_${lumarr[lum]}_${puarr[PU]}_${1}" -p 0 -X stuff "./NEWrunReader.py SummerStd $puarr[PU]_$sigind $1 >& "${sigind}_${lumarr[lum]}_${1}".txt &;exit"$'\r'
done
return 0
请解释。 ';'在执行第二个命令之前等待第一个命令。为什么这不起作用? – 2014-09-05 16:49:13
';'分隔两个命令,它们依次运行 – bobah 2014-09-05 16:49:42
确实,'''正是你想要的。 '&'不是。 – 2014-09-05 16:50:16