在我的工作场所,每次有人尝试为 10-20 个项目中的任何一个将文件签入到 SVN 存储库时,都会在 Unix 机器上运行一个 Perl 脚本。
它的工作方式是每个项目都有自己的“Hooks”文件夹,其中包含一个名为“pre-commit”的文件,当有人签入某些东西时,SVN 会自动执行该文件。除了“预提交”文件实际上是所有项目通用的一个中央 Perl 脚本的符号链接,因此如果需要对 Perl 脚本进行更改,则不需要对每个项目都进行更改。
所以我的问题是这样的:我需要在每个项目的“钩子”目录中放置一个文本文件,每个文件都包含一些特定于该项目的设置。因此,在它们各自的“钩子”目录中将有 10-20 个设置文件(每个项目一个)。
问题是我需要在 Perl 脚本中打开这些文本文件并从中读取,但我在让 Perl 知道在哪里找到它时遇到了问题。我尝试使用 $0 参数,它应该告诉我从哪里执行脚本,但因为它是一个符号链接,它只是说“不是目录”并且脚本终止。我需要获取“钩子”目录的路径,以便找到文本文件。