在bash或shell脚本向前函数声明?(Forward function declarations

2019-07-04 04:35发布

是否有这样的事情bash或至少类似的东西(变通)像前声明,在C / C ++众所周知,例如?

还是有那么这样的事情,因为例如它总是在一通(行号后)执行?

如果没有前向声明,我应该怎么做才能让我的脚本更易于阅读。 这是相当长,在开始这些函数的定义,全局变量混合,使我的剧本看起来丑陋不堪,读/理解)? 我要求去学习这种情况下,一些知名的/最佳实践。


例如:

# something like forward declaration
function func

# execution of the function
func

# definition of func
function func
{
    echo 123
}

Answer 1:

大的问题。 我用这样的模式对于大多数我的脚本:

#!/bin/bash

main() {
    foo
    bar
    baz
}

foo() {
}

bar() {
}

baz() {
}

main "$@"

你可以阅读从上到下的代码,但它实际上并没有开始执行,直到最后一行。 通过传递"$@"主(),您可以访问命令行参数$1$2 ,等人就像你通常会。



Answer 2:

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

文件allMyFunctions

foo() {
}

bar() {
}

baz() {
}

文件main

#!/bin/bash

. allMyfunctions

foo
bar
baz


文章来源: Forward function declarations in a Bash or a Shell script?