把函数放到后台运行

时间:2019-04-16 23:59:05  来源:igfitidea点击:
  1. &操作符用于将命令放在后台,释放终端。
  2. 你也可以将一个函数放在后台。

如何把一个函数放在后台?

name(){
  echo "执行函数任务"
  sleep 1
}

# 将函数放到后台
name &

# 做其他事

示例

在备份时,如何显示任务进度

#!/bin/bash
# progressdots.sh - 在备份时显示进度
progress(){
  echo -n "##代码##: Please wait..."
  while true
  do
    echo -n "#"
    sleep 5
  done
}

dobackup(){
    # 备份命令
    tar -zcvf /dev/st0 /home >/dev/null 2>&1
}

# 后台开始运行进度函数
progress &

# 保存函数进程PID
# 后面需要使用PID来终止该函数
MYSELF=$!

# 开始备份
dobackup

# 终止函数
kill $MYSELF >/dev/null 2>&1

echo -n "...done."
echo