我在服务器列表中的可变数量的服务器上运行一堆任务。我想提供一种了解正在运行的任务完成百分比的方法。
我已实施以下内容:
#!/bin/bash
items=4
complete=0
# Show progress dots
progress(){
# echo -n "Running tasks..."
while [[ $complete -le $items ]]
do
pct=$(($complete * 100 / $items))
echo "\r$pct%\c\b"
sleep 1
done
}
#get list function
function getlist() {
for i in $(cat fakelist.txt)
do
nexec -i $i hostname >>hosts.txt
((complete+=1))
done
}
#function calls
progress &
MYSELF=$!
getlist
# Kill progress
kill $MYSELF >/dev/null 2>&1
echo -n "...done."
echo
我在后台放置的进度函数似乎无法访问全局变量complete,因此无法计算百分比。有没有其他方法可以实现这一点,而无需改变一切?