刚接触 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
并保存文件以进行转换。