【发布时间】:2014-04-14 08:45:56
【问题描述】:
我制作了一个用于启动并行 rsync 进程的脚本:
#! /bin/bash
LIST=$1
DEST_DIR=$2
RSYNC_OPTS=$3
#echo "rsyncing From=$SRC_DIR To=$DEST_DIR RSYNC_OPTS=$RSYNC_OPTS"
echo $LIST|xargs -n1 -d, echo|xargs -n1 -P 0 -I% rsync --rsync-path='sudo rsync' ${RSYNC_OPTS} % ${DEST_DIR}
然后,我在获取 rsync 进程的退出状态时遇到了问题。我知道可以获取一组 pipestatus,但我需要捕获退出代码以了解 rsync 是否成功。
有人知道吗?
【问题讨论】:
-
您已经提到
$PIPESTATUS:${PIPESTATUS[2]}将包含第二个xargs命令的退出状态。如果rsync以 1-125 的状态退出,这将是 123(请参阅此处的退出状态部分:unixhelp.ed.ac.uk/CGI/man-cgi?xargs) -
嗨乔希,感谢您的回复。不过,我需要 rysnc 的退出代码,而不是 xargs 退出代码。像这样的东西:wpkg.org/Rsync_exit_codes
-
不确定您是否能够像这样使用 xargs 获得 rsync 的特定退出状态,它将被 xargs 屏蔽。也许你可以通过
$LIST来代替?