在 Debian 中尝试执行启动脚本时,没有出现这样的文件或目录错误

在 Debian 中尝试执行启动脚本时,没有出现这样的文件或目录错误

刚接触 Debian (Raspbian),我花了几天时间研究这个。我有一个启动脚本,我想在启动时执行。

我已执行以下命令,使脚本可执行并将其与默认参数一起添加到启动序列中。

sudo chmod 755 /etc/init.d/testsam
sudo update-rc.d testsam defaults

当尝试测试脚本时,我执行以下操作:

sudo /etc/init.d/testsam start

但是当这样做时,我收到一个错误:无法执行/etc/init.d/testsam:没有此文件或目录。

我把脚本最小化到最基本的,但仍然不知道实际原因。我希望有人能指出正确的解决方案?这是当前的脚本。

#! /bin/bash

# /etc/init.d/testsam

case "$1" in
 start)
        #echo "starting script"
        ;;
 stop)
        #echo "stopping script"
        ;;
 *)
        #echo "Usage: /etc/init.d/testsam {start|stop}"
        exit 1
         ;;
esac

exit 0

谢谢你的帮助

答案1

^M您的行尾可能有一个回车符 ( ) #!

该行的格式#!非常严格,并且不允许回车,除非实际调用了你的解释器/bin/bash^M

使用适当的 UNIX 编辑器创建的文件中永远不会有回车符,除非您特意添加它们。

编辑已使用 CRLF 行尾的现有文件时,回车符可能会对您隐藏。例如,vim 就是这样做的。但它还会[dos]在状态行中警告您该文件是 DOS 格式。然后您可以输入:set fileformat=unix并保存文件以进行转换。

相关内容