我搜索了一些站点,还检查了case命令的语法,但没有任何帮助。我的错误在哪里?
#!/bin/sh
USER="user"
DIR="/linktodirectory"
###### script ######
case $1 in正如你在上面看到的,我有一个"in“。
start)
su $USER -c "${DIR}/file start"
;;
stop)
su $USER -c "${DIR}/file stop"
;;
restart)
su $USER -c "${DIR}/file restart"
;;
status)
su $USER -c "${DIR}/file status"
;;
*)
echo "Usage: {start|stop|restart|status}" >&2
exit 1
;;
esac
exit 0我使用的是64位的Ubuntu 16.04。
发布于 2016-10-16 01:12:57
您的第一个参数$1应该用双引号括起来。只有这样,这才是case语句的参数。
case "$1" in发布于 2016-10-16 01:20:09
首先,我怀疑是文件编码问题。
一开始,你的语法看起来还不错..至少是给出错误的那一行。
如前所述,您可以使用双引号更改case行。
如果问题仍然存在,请务必检查文件编码。
https://stackoverflow.com/questions/40061882
复制相似问题