我运行的是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
。
您可以通过在开头不使用空格来“修复”此问题。