1

我需要能够调用这个:

watch -n1 cat /proc/mdstat

来自 bash。

对于 raid 创建监视(在 mdadm --create 等之后),然后将其杀死,然后构建过程将结束。

#!/bin/bash
#PID=$!
while
progress=$(cat /proc/mdstat |grep -oE 'recovery = ? [0-9]*')
do
    watch -n1 cat /proc/mdstat
    PID=$(pidof watch)
    echo "$PID" >> /mnt/pid
    if (("$progress" >= "100"))
        then
            break
            kill -9 $PID
    fi
done
echo "done" 

但我不知道如何从 bash 中杀死提防。我在循环中尝试了PID=$!and PID=$$pidof watch但无法将正确分配PID给我的变量 make kill -9 $PID

4

1 回答 1

2

听起来您需要让手表运行直到进度达到 100 ?

watch  -n1 cat /proc/mdstat &
WATCHPID=$!
while
progress=$(cat /proc/mdstat |grep -oE 'recovery = ? [0-9]*')
do

if (("$progress" >= "100"))
    then
        break

fi
sleep 1
done

kill $WATCHPID

echo "done" 
于 2014-10-03T11:50:11.530 回答