当我执行unison tours 2> /dev/null | grep -A 2 '<-?->'在 bash 提示符下,我得到了我正在寻找的确切输出:
*changed <-?-> changed Future Tours/File Clash Test.docx
local : changed file modified on 2013-06-05 at 16:24:40 size 10221 rw-rw----
bj-server... : changed file modified on 2013-06-05 at 16:23:53 size 10232 rw-rw----*
当我将其放入 shell 脚本时:
#!/bin/bash
tmp=$(unison tours 2> /dev/null | grep -A 2 '<-?->')
echo "$tmp" > /home/users/itsystem/test.log
……结果很奇怪。运行更多 test.log,我得到以下信息:
- 系统表/反馈她 哎呀).xls | 过去的旅行/2012/CE0 12 樱桃(N...我们的菜单/丽江旅游菜单.xls - 过去的旅行/2012/UC041112 St - Past Tours/2012/UC081112 Lopata (N... Menus - UC081012 Lo 2/VC110912 Levin (VI)...菜单 - VC110912 Levin (VI).xlsx xlsx | 未来之旅/2013 未来 /查询/优秀/特伦斯公园...行程(Trev 改变 改变 Future Tours/File Clash Test.docx 本地:更改文件于 2013 年 6 月 5 日 16:24:40 修改,大小 10221 rw-rw---- bj-server ...:更改文件于 2013 年 6 月 5 日 16:23:53 修改,大小 10232 rw-rw----
另一个垃圾是从哪里来的?
如果您只是简单地运行unison,那么您确实会得到一条动画输出,该输出会通过旋转 -\|/ 显示工作文件夹不断刷新,但最终会消失。
如果我的 grep 在 bash 提示符下工作,为什么不来自 shell 脚本?