104

bash例如,在 C / C++ 中众所周知的前向声明中是否有这样的事情,或者至少有类似的(解决方法)?

或者有这样的事情,因为例如它总是一次执行(一行接一行)?

如果没有前向声明,我应该怎么做才能使我的脚本更易于阅读。它相当长,并且这些函数定义在开始时与全局变量混合在一起,使我的脚本看起来很丑陋且难以阅读/理解)?我要求为此类案例学习一些众所周知的/最佳实践。


例如:

# something like forward declaration
function func

# execution of the function
func

# definition of func
function func
{
    echo 123
}
4

2 回答 2

203

好问题。我的大多数脚本都使用这样的模式:

#!/bin/bash

main() {
    foo
    bar
    baz
}

foo() {
}

bar() {
}

baz() {
}

main "$@"

您可以从上到下阅读代码,但实际上直到最后一行才开始执行。通过传递"$@"给 main(),您可以像往常一样访问命令行参数$1, $2, 等。

于 2012-11-27T16:19:21.743 回答
32

当我的 bash 脚本增长太多时,我使用包含机制:

文件allMyFunctions

foo() {
}

bar() {
}

baz() {
}

文件main

#!/bin/bash

. allMyfunctions

foo
bar
baz
于 2012-11-27T16:39:29.257 回答