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