我是编写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脚本。
答案 0 :(得分:0)
从#修改shebang! / bin / csh到#! / bin / csh -f 它会起作用!! 但我仍然困惑为什么同一台服务器上的其他用户,他们可以使用现有的脚本,shebang是/ bin / csh而不是-f
我的〜/ .cshrc有什么问题吗?
答案 1 :(得分:0)
很抱歉再次发布另一个答案
我发现如果我按“源文件名”运行脚本 它正常终止
所以,也许有一些原因导致我的子shell无法正常关闭并且可能在循环中?
答案 2 :(得分:0)
您可以使用screen命令运行脚本
$ screen ./script.sh
您将看到您离开的流程仍在运行。
$ screen -r