当然,在/etc/sysconfig/*
脚本中可以有普通name=value
的任务。
但是这些文件是由.
shell 解释的,不是吗?对可以合法(即根据操作系统的任何规则)和可移植(即跨多个操作系统)在其中使用的 shell 语言是否有任何限制?或者可以使用任意 (POSIX) shell 语言吗?
我在想这样的事情:
- 复杂的任务:
abc=/var/${logdir}
- 采购常见的“库”或“助手”脚本
此 RedHat 文档和此 OpenMandriva 文档深入探讨了可以设置的各种单独选项,但对这些文件的实际基本格式只字未提。
(相当于/etc/sysconfig
Debian 上的/etc/default
,它确实有关于格式的规则 。Debian 的政策手册要求文件/etc/default
“必须仅包含 POSIX.1-2017sh
格式的变量设置和注释”。不过这个问题是关于 RedHat 的/etc/sysconfig
。)
简短:这取决于
更长:
Redhat 和 Mageia/Mandriva 使用符号链接
/bin/sh
指向bash
,因此当这些是脚本时,您将得到 bash 的行为类似于 sh,或者 bash 本身,这取决于采购脚本使用的是 bash 还是“sh”。两种系统都有两种情况。并非所有文件
/etc/sysconfig
都是脚本;有些(比如/etc/sysconfig/partmon
在我的 Mageia6 机器上,或者systat.ioconf
在我的 CentOS 7 上)只是数据。有些东西读到了,但这不是通过采购脚本来完成的。