如果 %post 包含反勾號或指令替換,則日誌檔案為空白

如果 %post 包含反勾號或指令替換,則日誌檔案為空白

在為 Centos6.6 建立自訂 USB 安裝程式時(並不容易)我發現如果kickstart 檔案的 %post 部分有反引號

  • Anaconda 完成,但立即退出到空白螢幕(無視訊輸出),通常它退出時會顯示一條訊息,顯示 Anaconda 已終止等。
  • anaconda-ks.log 和 %post 日誌檔案都存在,但長度為零。

這有效

%pre --log=/root/postLog.log
echo "This is the post"
ls
%end

這不起作用

%pre --log=/root/postLog.log
echo "This is the post"
echo `ls`
%end

這也行不通

%pre --log=/root/postLog.log
echo "This is the post"
echo $(ls)
%end

為什麼?我需要在 %post 中做很多事情,而沒有命令替換/反勾支援將使這變得更加困難。

有什麼解決辦法嗎?

編輯:為什麼我需要反引號?

安裝程序適用於設備產品,因此需要安裝基本作業系統、自訂作業系統 rpm 和產品 rpm。

所以在 %post 部分,類似這樣的模式很常見:

cd $ApplicationPackageDir
RPMLIST=`ls *.rpm`
RPMCOUNT=`ls *.rpm | /usr/bin/wc -l`

for theRpm in $RPMLIST
do
    echo /bin/rpm --quiet --upgrade --nodeps --force $theRpm
done

一般做某事的類似模式任何文件存在於特定目錄中。

如果 anaconda 對文件中的反引號感到厭煩,那麼整個概念就不起作用了。

此外,反引號是一個有效的 bash 運算子-kickstart 似乎在使用它時遇到了麻煩。

bash 是否有反引號應該在kickstart 工作?

編輯二:在範例中新增了 $(ls)

相關內容