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