多行分配给单个shell变量

时间:2014-12-12 06:05:43

标签: bash shell

最近我开始探索shell脚本。

我写了一个简单的shell脚本(git hook)来检查我本地repository中的所有修改过的文件.Shell脚本运行正常。

我的剧本

#/usr/bin/env bash
git fetch && git log ORIG_HEAD..origin/master --pretty=format:"%s - %ar by %an %h"

输出

post-merge check 7 - 30 seconds ago by xyz f917898
post-merge check 6 - 54 seconds ago by xyz 98399c8

我想将我的shell脚本的输出邮寄给我的朋友。

我试过这个

#/usr/bin/env bash
changed_files = `git fetch && git log ORIG_HEAD..origin/master --pretty=format:"%s - %ar by %an %h"`
echo "$changed_files" | mailx -s "changes made to local repo" abcd@example.com

但它引导我

.git/hooks/post-merge: 2: .git/hooks/post-merge: changed_files: not found

任何人都能建议我如何实现这个目标吗?

我可以将输出写入文本文件并附加该文件并发送邮件。 但我很好奇发送一次。

谢谢

1 个答案:

答案 0 :(得分:3)

摆脱=

周围的空格
changed_files=`git ...

bash中,行:

changed_files = something

表示运行changed_files可执行文件(在这种情况下不存在,因此出错),传递两个参数=something