Linux 启动bash脚本

Linux 启动bash脚本,linux,bash,busybox,Linux,Bash,Busybox,你好,我有这样的问题。我有init脚本,必须运行syslogd(busybox),所以我有这样的代码: ... "$__start_program" $OPTIONS .... 如果我 它打印 /sbin/syslogd -s 512 -l 6 -L -O "/var/log/a.log" 我在ps中看到了这个过程,但实际上syslog没有启动(日志文件中没有关于启动的消息,logger根本不向日志写入任何内容)。但是,如果我从命令行手动运行这个脚本(使用相同的参数),它可以正常工作。有人能

你好,我有这样的问题。我有init脚本,必须运行syslogd(busybox),所以我有这样的代码:

...
"$__start_program" $OPTIONS
....
如果我

它打印

/sbin/syslogd -s 512 -l 6 -L -O "/var/log/a.log"

我在
ps
中看到了这个过程,但实际上syslog没有启动(日志文件中没有关于启动的消息,
logger
根本不向日志写入任何内容)。但是,如果我从命令行手动运行这个脚本(使用相同的参数),它可以正常工作。有人能帮我解决这个问题吗?

不要用字符串来存储命令,它们不是用来存储命令的。报告中对这可能导致的潜在问题进行了一些很好的讨论

一个字符串从何处开始,另一个字符串从何处结束,这个问题并不清楚,但您应该使用函数来实现您要做的事情。大概是这样的:

log_daemon() {
    param_s="$1"
    logfile="$2"
    /sbin/syslogd -s "$param_s" -l 6 -L -O "$logfile"
}
然后从脚本中调用它,如:

log_daemon 512 /var/log/a.log

“/var/log/a.log”
周围有可疑的引号,它们可能不在那里。另请参见,您能否澄清
$\u start\u程序
$选项
的内容?
log_daemon 512 /var/log/a.log