Linux 上的 bash 中是否有可用的 goto 语句?
长话短说,Linux 的 bash 没有 goto 语句,而且官方文档中也没有有关控制结构的信息。还需要注意的是,我们可以使用 break 和 continue 语句来实现与 goto 语句相同的行为。
通过一些微调并在 bash 中使用简单的 if 条件,可以实现 goto 的简单行为。
脚本看起来像这样
# ... Code You want to run here ... if false; then # ... Code You want to skip here ... fi # ... You want to resume here ...
另一个想法是使用比上面提到的脚本稍微复杂一点的 bash 脚本,但效果很好。
#!/bin/bash
function goto
{
label=$1
cmd=$(sed -n "/$label:/{:a;n;p;ba};" $0 | grep -v ':$')
eval "$cmd"
exit
}
startFunc=${1:-"startFunc"}
goto $startFunc
startFunc:
x=100
goto foo
mid:
x=101
echo "Not printed!"
foo:
x=${x:-10}
echo x is $x输出
$ ./sample.sh x is 100 $ ./sample.sh foo x is 11 $ ./sample.sh mid Not printed! x is 101
广告
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
安卓
Python
C 编程
C++
C#
MongoDB
MySQL
JavaScript
PHP