gpt4 book ai didi

linux - 从 shell 脚本创建初始化脚本

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:45:08 25 4
gpt4 key购买 nike

我正在尝试从 shell 脚本创建一个初始化脚本。但问题是生成的初始化脚本不携带与 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 定界符 'EOF' 周围使用单引号以避免进程扩展

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

但是生成的sh脚本中仍然存在引用问题:

cd ${WORK_DIRECTORY}

应该是

cd "${WORK_DIRECTORY}"

还有如何定义变量DESC,LOCK,finally变量应该是小写的。

关于linux - 从 shell 脚本创建初始化脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48505456/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com