我不断收到此错误:
./install.sh
./install.sh: line 28: syntax error near unexpected token `do'
./install.sh: line 28: ` do'
Run Code Online (Sandbox Code Playgroud)
运行此代码时(正在进行中):
# Set the prompt string:
PS3='Choose folder: ';
function choose() {
# This works:
#select folder;
#do test -n "$folder" && echo You chose: $REPLY\) $folder && break;
#echo 'Wrong entry, try again.';
#continue;
#done;
select folder;
do
case $folder in
'q')
echo 'Exiting …';
break;
;;
*)
do
test -n '$folder' && echo You chose: $REPLY\) $folder && break;
echo 'Wrong entry, try again.';
continue;
done;
;;
esac;
done;
}
# Switch to glob folder location:
cd ~/Desktop;
# Create menu:
choose foo*;
# Do stuff with result of choose() here ...
# Exit program:
exit 0;
Run Code Online (Sandbox Code Playgroud)
正如您可能从上面看到的,我正在尝试创建一个菜单,让我可以从全局文件夹列表中进行选择;不幸的是,我无法弄清楚为什么我的嵌套do
会产生我上面发布的错误。
最理想的是,用户可以从目录列表中进行选择;如果他们输入q
,则程序退出;如果他们做出了无效的选择,程序会让他们再次选择,直到他们选择了一个有效的选择(或输入q
退出/退出)。
我还没有完全弄清楚退出部分,但在我能做到这一点之前,我需要克服这个do
语句错误。
问题:是什么导致的syntax error near unexpected token `do'
,我该如何解决?
您的语法无效。您的代码也可能有其他问题,但此消息可能来自于您不能将do
关键字视为块的事实;您还需要具有循环条件之一。
您目前拥有:
*)
do
test -n '$folder' && echo You chose: $REPLY\) $folder && break;
echo 'Wrong entry, try again.';
continue;
done;
;;
Run Code Online (Sandbox Code Playgroud)
您缺少for
, while
, 或until
关键字来开始您的循环。
归档时间: |
|
查看次数: |
3944 次 |
最近记录: |