bash 中是否有“goto”语句?

新手上路,请多包涵

bash 中是否有“goto”语句?我知道这被认为是不好的做法,但我特别需要“goto”。

原文由 kofucii 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.5k
2 个回答

不,那里没有;有关 确实 存在的控制结构的信息,请参阅 Bash 参考手册 中的第 3.2.4 节“复合命令” 。特别注意提到 breakcontinue ,它们不如 goto 灵活,但在 Bash 中比在某些语言中更灵活,可以帮助你实现你想要的。 (无论你想要什么……)

原文由 ruakh 发布,翻译遵循 CC BY-SA 3.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 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题