来自bash中不同脚本的不同功能

时间:2019-06-13 07:13:43

标签: linux bash shell debian

我想制作一个脚本来调用来自不同脚本的函数,但是一旦我调用了另一个脚本,每个内部函数都无法识别它。

我不知道如何继续。我尝试删除该调用,但是一旦删除对另一个脚本的调用,显然,这些功能将无法正常工作。

#!/bin/bash

. generalFunct
is_stora_mounted="true"
counter=0
user1000=$(cut -d: -f1,3 /etc/passwd | egrep ':[0-9]{4}$' | cut -d: -f1)

doCheckSudo
doDisableCdrom
doCheckOS
doAddProgramSources
doInstallOtherDependency
doAddSources
doAddAnsibleSources
doInstallPrinter
doInstallSenior

doAddAnsibleSources() {
    bla bla bla bla
}



doInstallSenior() {

    bla bla bla bla bla bla

}
doInstallVPN
doUpgradeAndUpdate
doInstallWifiDriver
doAddCertificates
doDownloadDockerImages

[BLA BLA BLA IT'S TO KEEP THE PRIVACY ON MY WORKPLACE]

doAddAnsibleSources和doInstallSenior是内部函数。

我希望可以工作,但是它说找不到订单(指功能标题)

enter image description here

1 个答案:

答案 0 :(得分:0)

问题在于这些函数在 之后被定义。将它们移到脚本顶部,然后重试。

doAddAnsibleSources() {
 ...
}

doAddAnsibleSources

代替:

doAddAnsibleSources

doAddAnsibleSources() {
 ...
}

这是必需的,因为bash是解释环境,并且不进行预处理,仅逐行执行。当以这种方式读取文件时,它会尝试执行尚未见过的功能。