svn diff调用一个csh脚本,调用.cshrc尽管有csh -f标志

时间:2015-07-02 15:31:45

标签: svn csh tcsh vimdiff

在我的RHEL盒子上找到了一个标准脚本,用于将svn diff输出传递给vimdiff:

#!/bin/csh -f
vimdiff ${6} ${7}

将其添加到路径中,并在〜/ .subversion / config

中设置diff-cmd

这很有效,我拥有所需的所有优点。 但是,似乎忽略了csh的-f标志并且正在运行我的.cshrc文件:在vimdiff打开之前,我可以看到echo消息由它吐出。

我的.cshrc连接到许多许可证服务器,所以需要一段时间,这不太好。

顺便说一句,直接运行此脚本(svndiff.sh x x x x x file1 file2)不会调用.cshrc

svn(版本1.6.11)本身就是这样做的吗?任何想法为什么会发生这种情况以及可以做些什么呢?

1 个答案:

答案 0 :(得分:1)

最可能被称为csh svndiff.sh。 hashbang仅 如果被称为./svndiff.sh,则执行。

还建议您在cshrc中执行此操作:

setenv PATH ~/Local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/games
# ...more environment settings

# Only load these for interactive shells
if ( $?prompt ) then
  set autolist
  # ...more settings, keybinds, etc.
endif

但是,实际上,不要将csh脚本用于此类事情。尽可能使用bourne shell。 1995年“Csh Programming Considered Harmful”中提出的几乎所有问题仍然适用于20年后的tcsh