我写了我的第一个 shell 脚本,它是这样的
#!/bin/bash
#
# This is a custom post-commit for sending email
# when an svn repo is changed.
#
repodir=$1
revision=$2
author=`/usr/bin/svnlook author -r $revision $repodir`
date=`/usr/bin/svnlook date -r $revision $repodir`
log=`/usr/bin/svnlook log -r $revision $repodir`
info=`/usr/bin/svnlook changed -r $revision $repodir`
url="http://www.mydomain.net/svn/filesystem/$repo"
echo 'To: me@googlemail.com' > commit-message **<<LINE17**
echo 'From: me@mydomain.net' >> commit-message
echo 'Subject: SVN Commit' >> commit-message
echo '' >> commit-message
echo 'repository - $url' >> commit-message
echo 'date - $date' >> commit-message
echo 'username - $author' >> commit-message
echo 'revision - $revision' >> commit-message
echo 'comment - $log' >> commit-message
echo 'test email' >> commit-message
echo '$info' >> commit-message
ssmtp me@googlemail.com < commit-message
rm commit-message
当我在服务器上以我的身份登录运行测试(去除 svn vars)时:./post-commit
脚本运行良好,它将提交文件写入磁盘并与 sSMTP 结合使用,我收到一封电子邮件在 gmail 中。
但是,当我使用 svn 提交文件时,出现权限错误。
问题是我已将父目录更改为 777。
post-commit hook failed (exit code 1) with output:
/home/svn/filesystem/hooks/post-commit: line 17: commit-message: Permission denied
当我尝试通过将提交后脚本擦除到以下位置来查看哪个用户正在运行提交时:
echo $USER
它不返回任何东西。