我正在关注解析参数的this教程。当我使用或不使用参数运行脚本时,我得到“第45行:语法错误:意外的文件结束”。 这是脚本中最后一行之后的行。我只是看不到错误(bash脚本新...)。
#!/bin/bash
#Explain arguments that can be passed in
argumentUsage(){
cat << EOF
usage: $0 options
This script configures rsync to backup SOURCE to DESTINATION and provide notifications on status.
OPTIONS:
-h Show this message
-s Source location
-d Destination location
EOF
}
DESTINATION=
SOURCE=
while getopts "hs:d:" OPTION
do
case $OPTION in
h)
argumentUsage()
exit1
;;
s)
SOURCE=$OPTARG
;;
d)
DESTINATION=$OPTARG
;;
?)
argumentUsage()
exit
;;
esac
done
答案 0 :(得分:7)
这是因为你缩进EOF
这里
argumentUsage(){
...
OPTIONS:
-h Show this message
-s Source location
-d Destination location
EOF
}
由于缩进,bash没有“看到”终止EOF
,因此有效地使你的here-doc无法终止,这会导致“意外的文件结束”。