いくつかのサイトを検索しましたが、caseコマンドの構文もチェックしましたが、役に立たなかった。 どこにエラーがありますか?シェルスクリプト:構文エラー:予期しない単語( "in")
#!/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
私はUbuntu 16.04 64ビットを使用しています。
あなたのスクリプトファイルにはおそらくDOSの行末が含まれています。つまり、パーサーは 'in \ r'を' in'と見なします。 – chepner
[同じコードが他の場所で動作するときにシェルスクリプトが構文エラーを出すのはなぜですか?](http://stackoverflow.com/questions/31886144/why-is-a-shell-script-giving-syntax-errors- when-same-code-works-other- – chepner