所有 shell 脚本都返回到命令行

所有 shell 脚本都返回到命令行

我可能做了一些非常愚蠢的事情,但我不知道是什么。

在云主机(如果重要的话,是 Digital Ocean)上运行 Ubuntu Server 12.04。所有 shell 脚本都什么都不做,只是立即返回提示,没有错误、警告,甚至没有竖中指。

  • start-stop-daemons 脚本不会从带有“./script-name”的命令行运行,而不仅仅是 cron

  • 执行位被设置

  • shell 是 /bin/bash

  • 用户是root

  • 尝试将 #!/bin/sh 更改为 #!/bin/bash

  • 尝试不使用 dash bydpkg-reconfigure dash

  • 脚本正在被解析——如果我将其编辑为非法内容,就会出现错误

没有主意了……

是不是有什么原因导致我看不到输出?

答案1

尝试调试 shell 脚本,方法如下

将其放在 #!/bin/bash 行之后

logfile=/tmp/script.log
exec > $logfile 2>&1

然后从 shell 提示符下使用此命令执行脚本。

# bash -x script-name.sh 

看看接下来会发生什么,检查脚本中写的命令是否正在执行。

还使用此命令仔细检查路径。

echo $PATH

相关内容