我在bash中该怎么echo "$cmd">>/path/err.csv" 获取$cmd中的PIPESTATUSES退出码

我写了一个bash想要尝试连线到远端获取断线log档,但是连线过程中可能会发生断线.所以我设定了一个timeout ,可以让断线时退出并且继续执行回圈,后续我想透过回传退出码来记录有超时的机台以便后续追中处理,在嘗試使用${PIPESTATUS[@]}处理时发现不管怎么输出都是0,猜测可能都是获得echo的退出码,想请问各位大学长,我有办法从echo "$cmd">>/path/err.csv" 获取$cmd中的PIPESTATUSES退出码吗

file="/home/tea/iptable.csv" 
for line in $(cat $file); do
    PIPESTATUS=() # 初始化 PIPESTATUS 变量
    id=$(echo $line | cut -d"," -f 1)
    ip=$(echo $line | cut -d"," -f 2)
    pwd=$(echo $line | cut -d"," -f 3)
    sshPass="sshpass -p "$pwd" ssh -o stricthostkeychecking=no "id"@"$ip" " #ssh連線
    count=$(ping -c 2 $ip | grep from* | wc -l)
    if [ $count -ne 1000000 ]; then
        getkeepliveLOG=$(echo "$pwd" | timeout 10s $sshPass sudo -S cat /var/log/err.log | grep -a "[^PI]NG\|modem_reset\|searching timeout" | sed 's/Keepalive:/,'$ip',/g')
        echo "$getkeepliveLOG" >>/home/tea/"$(date +%Y%m).csv"
        PIPESTATUSES=("${PIPESTATUS[@]}")
        for status in "${PIPESTATUSES[@]}"; do
            echo $status
        done
    else
        echo $(date +"%Y-%m-%d") ","$ip",-1" >>/home/tea/"$(date +%Y%m).csv"
    fi
done

可以把运行结果重定向到文件里。