1

考虑以下虚拟备份脚本:

#!/bin/bash
echo "rsync started"
sleep 1 # rsync time
echo "rsync completed"
echo "starting upload"
sleep 5 # upload time
echo "upload completed" 

和以下最小的启动脚本

#!/bin/bash
/path/to/backup.sh|awk '/^rsync completed/ {print "Restarting services"}'
echo "backup completed"

我原以为“重新启动服务”输出会在一秒钟后出现,但在 Debian Wheezy 下运行时,它会在 6 秒后出现。

我的错误在哪里?为什么将“rsync 已完成”字符串写入标准输出时不直接处理 awk 操作?

4

1 回答 1

0

使用 sed 而不是 awk。

/path/to/backup.sh|sed 's/^rsync completed/Restarting services/g'
echo "backup completed"
于 2015-02-24T14:23:10.237 回答