Bash脚本编写-编写init.d脚本

3

我正在使用/etc/init.d/httpd作为init.d脚本的模板。我理解文件中发生的一切,除了以下行:

LANG=$HTTPD_LANG daemon --pidfile=${pidfile} $httpd $OPTIONS

可以有人解释为什么HTTPD_LANG(设置为“C”)应该在守护进程函数之前吗?谢谢。

1
你是在问这行代码的语法,还是在问为什么daemon函数需要在其环境中使用LANG设置为C - William Pursell
我在询问这行代码的语法。 - user2759991
2个回答

2
当您在执行命令之前分配环境变量时,该变量会有效地导出到命令的环境中,但不会影响父环境。来自man bash的描述:
任何简单命令或函数的环境都可以通过在其前面添加参数赋值来临时增加,如上述参数中所述。这些赋值语句只影响该命令看到的环境。
因此,在这个初始化脚本中发生的情况是,将LANG变量设置为您配置的HTTPD_LANG(在本例中为“C”),并将其导出到daemon命令的环境中(并且可能从那里导出到httpd的环境中)。

0

任何不需要用户交互的功能,使用“适当的本地化”只会使其变得更加缓慢。根据Barry Kauler's tests.,将LANG设置为“C”可以提高5倍速度。

您可以通过将LANG变量保存到临时变量中,在LANG=C下运行关键程序,然后恢复LANG变量来获得相同的速度提升。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接