你怎么去mac shell(就像在windows .bat中一样)?

时间:2011-12-30 13:43:56

标签: macos shell sh goto

.bat等价物是:

:one
<<run program>>
goto :two

:two
<<run program>>
goto :one

end

.sh可以这样做吗?

3 个答案:

答案 0 :(得分:2)

实际上没有确切的替代品。在bash编程中,您可以定义函数,因此您可以执行类似

的操作
one() {
    # Some stuff
    two
}

two() {
    # Some more stuff
    one
}

虽然最终会耗尽堆栈空间;希望在某些情况下您可以使用代码来停止递归。我意识到这只是一个稻草人的例子,但是bash会让你在这里使用其他形式的循环,这样可以更好地工作;例如:

while true
do
    # Some stuff
    # Some more stuff
done

答案 1 :(得分:0)

Unix shell允许结构化编程,因此不需要goto

while true; do
    <<some things here>>
    <<more things here>>
done

答案 2 :(得分:0)

使用goto语句尝试完成的任何内容都可能在bash中没有它表达,特别是通过编写函数或使用无限循环(以一种突破它的方式)。顺便说一下,你写的伪代码最终会崩溃,除非你有一个或两个指定的退出条件