Linux

/etc/sysconfig/* 腳本中是否允許使用通用 (POSIX) shell 語言?還是有限制?

  • August 23, 2018

當然,在/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 上)只是數據。有些東西讀到了,但這不是通過採購腳本來完成的。

引用自:https://unix.stackexchange.com/questions/463685