我是shell脚本的初学者。我对如何使用goto语句一无所知。我使用以下代码。
start:
echo "Main Menu"
echo "1 for Copy"
echo "2 for exit"
read NUM
case $NUM in
"1")
echo "CopyNUM"
goto start:;
"2")
echo "Haiiii";
goto start:
*)
echo "ssss";
esac
答案 0 :(得分:3)
正如其他人所指出的那样,''
(或其他类似POSIX的外壳)中没有goto
- 其他更灵活的流量控制结构取而代之。
在bash
中查找标题Compound Commands
。
在您的情况下,man bash
命令是正确的选择。
因为如何使用它可能并不明显,这里有一些东西可以让你开始:
select
答案 1 :(得分:1)
以下是使用select
循环来完成目标的简短示例。如果您想要自定义格式,可以将while
循环与自定义菜单一起使用,但基本菜单是select
旨在执行的操作:
#!/bin/bash
## array of menu entries
entries=( "for Copy"
"for exit" )
## set prompt for select menu
PS3='Selection: '
while [ "$menu" != 1 ]; do ## outer loop redraws menu each time
printf "\nMain Menu:\n\n" ## heading for menu
select choice in "${entries[@]}"; do ## select displays choices in array
case "$choice" in ## case responds to choice
"for Copy" )
echo "CopyNUM"
break ## break returns control to outer loop
;;
"for exit" )
echo "Haiiii, exiting"
menu=1 ## variable setting exit condition
break
;;
* )
echo "ssss"
break
;;
esac
done
done
exit 0
使用/输出强>
$ bash select_menu.sh
Main Menu:
1) for Copy
2) for exit
Selection: 1
CopyNUM
Main Menu:
1) for Copy
2) for exit
Selection: 3
ssss
Main Menu:
1) for Copy
2) for exit
Selection: 2
Haiiii, exiting