簡體   English   中英

從shell腳本創建init腳本

[英]Creating init script from shell script

我試圖從shell腳本創建一個init腳本。 但問題是生成的init腳本不攜帶與shell腳本中的“$”符號關聯的變量。

例如。 shell腳本中的以下函數被轉換為

setup_sysd () {
cat << EOF > /etc/init.d/example
#!/bin/sh
. /etc/rc.d/init.d/functions

start() {
   echo -n "Starting ${DESC}: "
   cd ${WORK_DIRECTORY}
   $EXAMPLE
   RETVAL=$?
   [ $RETVAL -eq 0 ] && touch -- "$LOCK"
   return $RETVAL
}

exit $RETVAL
EOF

被復制為,

start() {
echo -n "Starting : "
cd 

RETVAL=0
[  -eq 0 ] && touch -- ""
return 
}

在here-doc delimiter'EOF 'EOF'周圍使用單引號以避免進程擴展

cat << 'EOF' > /etc/init.d/example
...
EOF

但是生成的sh腳本仍然存在引用問題:

cd ${WORK_DIRECTORY}

應該

cd "${WORK_DIRECTORY}"

如何定義變量DESC,LOCK,最后變量應該是小寫的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM