xterm 调用 .cshrc 两次

xterm 调用 .cshrc 两次

我运行的是ubuntu 18.04,我在askubuntu上问过这个问题,但没有得到回应,所以我想我应该在不同的论坛上问,希望有不同的读者。我知道 ubuntu 16.04 也会出现同样的问题。我想知道如何解决这个问题,或者至少是否更普遍地发生这种情况,即在其他版本的 Linux 上。

以下命令

xterm -e ' tcsh'

调用我的 .cshrc 文件两次。但这个命令调用它一次

xterm -e 'tcsh'

同样的事情与

xterm -e 'cd `pwd`;tcsh'

显然,第一个调用和其他两个调用之间的唯一区别是空间。为什么一个空间会产生如此大的差异?

为了测试这一点,我使用了这个 MWE 版本的 .cshrc

#/bin/tcsh
echo called from cshrc

同样的问题发生在

xterm -e " csh"

感谢您提供有关如何解决此问题的任何建议!

答案1

猜测:开头的空格意味着没有要调用的命令,因此xterm尝试将其解释为 shell 脚本,.cshrc以参数调用标准 shell(显然也读取 )tcsh,然后调用tcsh,再次读取.cshrc

您可以使用 来验证这确实是发生的情况strace

您可以通过在开头不使用空格来“修复”此问题。

相关内容