Bash在后台运行脚本

Bash在后台运行脚本,bash,Bash,我有一个scriptfunc_测试,当我从终端调用它时,它运行良好。我需要在启动时自动运行脚本,因此我在/etc/init.d中复制了它,并更改了它的执行模式,并将它链接到/etc/rc2.d下的S99func_测试。但是在重新启动时,我在脚本中得到了语法错误。你知道为什么我会出错吗?虽然我的终端可以正常工作? 以下是用于第一次调用脚本的代码: #!/bin/bash cd /opt/bin/ cp func_test /etc/init.d/ cp test_file /etc/init.d

我有一个scriptfunc_测试,当我从终端调用它时,它运行良好。我需要在启动时自动运行脚本,因此我在/etc/init.d中复制了它,并更改了它的执行模式,并将它链接到/etc/rc2.d下的S99func_测试。但是在重新启动时,我在脚本中得到了语法错误。你知道为什么我会出错吗?虽然我的终端可以正常工作? 以下是用于第一次调用脚本的代码:

#!/bin/bash
cd /opt/bin/
cp func_test /etc/init.d/
cp test_file /etc/init.d
chmod 755 /etc/init.d/func_test
chown root:sys /etc/init.d/func_test
ln /etc/init.d/func_test /etc/rc2.d/S99func_test
ln /etc/init.d/test_file /etc/rc2.d/S99test_file

该脚本依赖于另一个filetest_文件,我已经将其复制到init.d

可能您忘记了行末尾的斜杠 cp test_file /etc/init.d/
看不到剧本就很难看出哪里出了问题;-。但总的来说,mut处于交互bash环境与非交互bashrc环境不同的原因是没有读取bashrc等等。我猜它是这样的/bin/sh而不是/bin/bash和init不使用bash解释init脚本。本页底部有一个关于所涉及的启动文件的图表,该图表取决于启动选项:@Wintermute不起作用:我使用declare关键字声明了一个变量。但它抛出了一个声明declare:notfound的错误,因此我怀疑脚本是否被解释为bash或其他类型
cp ./func_test /etc/init.d/