我想制作一个脚本来调用来自不同脚本的函数,但是一旦我调用了另一个脚本,每个内部函数都无法识别它。
我不知道如何继续。我尝试删除该调用,但是一旦删除对另一个脚本的调用,显然,这些功能将无法正常工作。
#!/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是内部函数。
我希望可以工作,但是它说找不到订单(指功能标题)
答案 0 :(得分:0)
问题在于这些函数在 之后被定义。将它们移到脚本顶部,然后重试。
doAddAnsibleSources() {
...
}
doAddAnsibleSources
代替:
doAddAnsibleSources
doAddAnsibleSources() {
...
}
这是必需的,因为bash是解释环境,并且不进行预处理,仅逐行执行。当以这种方式读取文件时,它会尝试执行尚未见过的功能。