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 文件。删除锁定文件解决了这个问题。
我运行正在使用 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 文件。删除锁定文件解决了这个问题。