/etc/sysconfig/* 脚本中是否允许通用 (POSIX) shell 语言?或者有限制吗?

/etc/sysconfig/* 脚本中是否允许通用 (POSIX) shell 语言?或者有限制吗?

当然,在/etc/sysconfig/*脚本中,人们可以进行普通的作业。name=value

但这些文件是由.shell 解释的,不是吗?对于可以在其中合法(即按照操作系统的任何规则)和可移植(即跨多个操作系统)使用的 shell 语言是否有任何限制?或者可以使用任意 (POSIX) shell 语言吗?

我在想这样的事情:

  • 复杂的作业:abc=/var/${logdir}
  • 采购常见的“库”或“帮助程序”脚本

这个 RedHat 文档这个 OpenMandriva 文档深入研究可以设置的各种单独选项,但对这些文件的实际基本格式保持沉默。

/etc/sysconfig(在 Debian 上相当于/etc/default对格式有规则。 Debian 的政策手册需要/etc/default“必须仅包含 POSIX.1-2017 格式的变量设置和注释”中的文件sh。这个问题是关于 RedHat 的/etc/sysconfig。)

答案1

简短:这取决于

更长:

Redhat 和 Mageia/Mandriva 使用符号链接/bin/sh指向bash,所以当这些是脚本时,你会得到像 sh 一样的 bash,或者 bash 本身,取决于关于采购脚本是使用 bash 还是“sh”。两个系统都有这两种情况。

并非所有文件都在/etc/sysconfig是脚本;一些(例如/etc/sysconfig/partmon在我的 Mageia6 机器上,或者systat.ioconf在我的 CentOS 7 上)只是数据。有些内容是这样写的,但这不是通过获取脚本来完成的。

相关内容