【发布时间】:2017-03-08 21:05:51
【问题描述】:
我在尝试 cat 新文件时遇到了 bash 脚本的一些问题。
#!/bin/bash
#sudo vim /etc/init.d/glassfish
sudo cat > /etc/init.d/glassfish <<EOF
# Set path variable
GLASSFISH_HOME=/opt/glassfish3
# Establish Commands
case "$1" in
start)
${GLASSFISH_HOME}/bin/asadmin start-domain domain1
;;
stop)
${GLASSFISH_HOME}/bin/asadmin stop-domain domain1
;;
restart)
${GLASSFISH_HOME}/bin/asadmin stop-domain domain1
${GLASSFISH_HOME}/bin/asadmin start-domain domain1
;;
*)
echo "usage: $0 {start|stop|restart}"
;;
esac
exit 0
EOF>
但是,当我运行此脚本时,它会将 $1 和 $0 替换为我用来调用运行命令的脚本的内容,因此 $1 变为 "" 而 $0 变为 testscript.sh
有什么办法可以防止这种情况发生吗?
【问题讨论】:
-
假设最后一个
EOF>是错字? (s/b 只是EOF,对 ;-) ? ) 祝你好运。