bash 中是否有“goto”语句?我知道这被认为是不好的做法,但我特别需要“goto”。
原文由 kofucii 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果您使用它来跳过大型脚本的一部分进行调试(请参阅 Karl Nicoll 的评论),那么如果 false 可能是一个不错的选择(不确定“false”是否始终可用,对我来说它在 /bin/false 中) :
# ... Code I want to run here ...
if false; then
# ... Code I want to skip here ...
fi
# ... I want to resume here ...
当需要删除调试代码时,困难就来了。 “if false”结构非常简单易记,但如何找到匹配的 fi?如果您的编辑器允许您阻止缩进,您可以缩进跳过的块(然后您需要在完成后将其放回原处)。或者对 fi 行的评论,但它必须是你会记住的东西,我怀疑这将非常依赖于程序员。
原文由 Michael Rusch 发布,翻译遵循 CC BY-SA 3.0 许可协议
7 回答5.3k 阅读
4 回答4k 阅读
2 回答5.9k 阅读✓ 已解决
2 回答2.5k 阅读✓ 已解决
1 回答2.3k 阅读✓ 已解决
2 回答793 阅读✓ 已解决
2 回答3.2k 阅读
不,那里没有;有关 确实 存在的控制结构的信息,请参阅 Bash 参考手册 中的第 3.2.4 节“复合命令” 。特别注意提到
break
和continue
,它们不如goto
灵活,但在 Bash 中比在某些语言中更灵活,可以帮助你实现你想要的。 (无论你想要什么……)