函数在后台访问全局变量

时间:2015-11-02 23:53:50

标签: bash

我在服务器列表中的可变数量的服务器上运行一堆任务。我想提供一种了解正在运行的任务完成百分比的方法。

我已实施以下内容:

#!/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,因此无法计算百分比。有没有其他方法可以实现这一点,而无需改变一切?

0 个答案:

没有答案