Tcsh 脚本不退出

Tcsh script does not exit

我运行正在使用 CentOS 7,我在使用 tcsh 脚本时遇到问题。

我有一个名为 quittest 的简单脚本。

#!/bin/tcsh
echo "Simple Test"
exit 0

当我 运行 从终端退出测试时,我得到

"Simple Test"

而且不退出。我可以 Control+C 退出。我通过以下方式检查此状态:

ps aux

它显示 quittest 状态为 S+(前台可中断睡眠)。如果我将此脚本更改为 bash 或 sh,它 运行 没问题,并按预期退出。

我不能只切换到另一个 shell,因为我的用户使用 tcsh 编写的脚本非常复杂。我们正在用 CentOS 7 替换 OpenSuSE 12.3。

Tcsh 版本 6.18.01-7。 SELinux 设置为允许测试此问题。

事实证明,我的 ~/.history 文件是问题所在。我按预期删除了那个和脚本 运行 。一定是在某个时候遇到了权限问题。

我所有的 Fedora 23,tcsh 版本 6.19.00-3.fc23 都遇到了同样的问题。
原因是 ~/.history.lock 文件。删除锁定文件解决了这个问题。