考虑以下虚拟备份脚本:
#!/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 compeleted”字符串写入stdout时,为什么不直接处理awk操作?
答案 0 :(得分:0)
使用sed而不是awk。
/path/to/backup.sh|sed 's/^rsync completed/Restarting services/g'
echo "backup completed"