linux - bash 中不同脚本的不同功能

标签 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

最佳答案

问题是函数是在调用之后定义的。将它们移到脚本的顶部,然后重试。

doAddAnsibleSources() {
 ...
}

doAddAnsibleSources

代替:

doAddAnsibleSources

doAddAnsibleSources() {
 ...
}

这是必需的,因为 bash 是解释环境,不做任何预处理,只是逐行执行。当以这种方式读取文件时,它会尝试执行它还没有看到的函数。

关于linux - bash 中不同脚本的不同功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56575172/

相关文章:

shell - 这行在 shell 脚本中是什么意思?

bash - 一个简单的小 shell 脚本来计算平均值

linux - 一次在 Linux 操作系统上运行的用户总数是多少?

linux - 在 initramfs 中使用 perl 重定向系统调用的输出

Python 在 Linux 上请求 403 但在 Windows 上工作

linux - 在 Linux 中重命名一组文件

linux - 如何使用 echo 编写非 ASCII 字符?

bash - 启动另一个应用程序的脚本将在退出时将其关闭

bash - awk 解析文件名并将结果添加到每行末尾

java - 如何在Windows机器上远程执行.sh文件