Shell脚本不会被终止,我需要手动终止它

时间:2017-11-28 03:34:06

标签: linux bash shell sh csh

我是编写shell脚本的新手,我在互联网上查看了一些教程 现在我尝试编写我的第一个脚本,这很简单:

#! /bin/csh
echo "Hello World! \a \n"
exit 0

它看起来简单而正确,它会在我的终端上显示Hello World,但它不会被终止 - 我需要按ctrl + c来停止shell。

但我试试

#! /bin/sh
echo "Hello World! \a \n"
exit 0

这可以正常终止,我知道第一行是指定什么shell 你想用来执行脚本,我用set命令找出我的默认shell是/bin/csh

此服务器上的其他用户都可以。 大家都知道我该如何解决这个问题?我不能使用我朋友写的一些shell脚本。

3 个答案:

答案 0 :(得分:0)

从#修改shebang! / bin / csh到#! / bin / csh -f 它会起作用!! 但我仍然困惑为什么同一台服务器上的其他用户,他们可以使用现有的脚本,shebang是/ bin / csh而不是-f

我的〜/ .cshrc有什么问题吗?

答案 1 :(得分:0)

很抱歉再次发布另一个答案

我发现如果我按“源文件名”运行脚本 它正常终止

所以,也许有一些原因导致我的子shell无法正常关闭并且可能在循环中?

答案 2 :(得分:0)

您可以使用screen命令运行脚本

$ screen ./script.sh

您将看到您离开的流程仍在运行。

$ screen -r