Bash 从文件中读取变量并将其发送到命令

Bash 从文件中读取变量并将其发送到命令,bash,archlinux,Bash,Archlinux,我正在尝试自动化一个构建过程,该过程需要从文件中检索依赖项列表,然后将这些依赖项管道化到命令中。我有一个循环来自动下载我正在构建的包,但是我需要读取一个文件并获得一个依赖项列表。我想做的是: cd ${pkg} then read this line from a file called PKGBUILD: depends=('dep1' 'dep2') paru -S dep1 dep2 有没有办法做到这一点?我是bash新手,但我已经(复制)了以下代码: 这段代码的问题是它没有检索到AUR

我正在尝试自动化一个构建过程,该过程需要从文件中检索依赖项列表,然后将这些依赖项管道化到命令中。我有一个循环来自动下载我正在构建的包,但是我需要读取一个文件并获得一个依赖项列表。我想做的是:

cd ${pkg}
then read this line from a file called PKGBUILD: depends=('dep1' 'dep2')
paru -S dep1 dep2
有没有办法做到这一点?我是bash新手,但我已经(复制)了以下代码: 这段代码的问题是它没有检索到AUR中的某些依赖项,因此makepkg不会自动检索它们

build_pkgs () {
    { echo; echo "Building AUR Packages - "; echo; }
    cd $DIR/aur_pkgs
    for pkg in "${PKGS[@]}"; do
        echo "Building ${pkg}..."
        cd ${pkg} && makepkg -s
        mv *.pkg.tar.zst $DIR/x86_64
        # Verify
        while true; do
            set -- $DIR/x86_64/$pkg-*
            if [[ -f "$1" ]]; then
                { echo; echo "Package '${pkg}' generated successfully."; echo; }
                break
            else
                { echo; echo "Failed to build '${pkg}', Exiting..." >&2; }
                { echo; exit 1; }
            fi
        done
        cd $DIR/aur_pkgs
    done    
}
ArchLinuxPKGBuild是用bash自己编写的,只需编写源代码并输出即可

. PKGBUILD
echo "${depends[@]}"
您最好在子shell中“安全地”执行此操作,并使用
declare-p
传递变量的值,以便不修改父环境

但是
makepkg
本身是用bash编写的,所以就这样吧


不管怎样,很多archlinux用户编写自己的一小套脚本来设置自己的存储库,而他们都需要解决这个问题。不是重新发明轮子,而是修复和别人一样的错误,而是考虑寻找一个现成的解决方案。

使用<代码> yay或其他为你做的管理器。但是,我的目标是尝试建立大的软件包来使用低功率设备,比如我的笔记本电脑。当我在其他大型软件包中编译一个修改过的内核时,在每台设备上都这样做是不可行的。我的意思是使用AUR助手来构建软件包并收集构建的软件包,而不是在目标机器上安装它们。然后从yay缓存中复制结果和依赖项。感谢您的帮助!我知道pkgbuild是用bash编写的,我只是一个新手,所以我没有考虑将其外包并使用变量来安装依赖项。我知道有很多用户repo,我通常只会使用AUR助手,但是,这些包中有很多是定制的、以某种方式修改的,或者太大,无法在我的设备上编译每个更新,所以我一直在使用github操作来编译所有内容。尽管如此,我还是要感谢你的帮助,你没有抓住重点。关键是不要使用AUR帮助程序,也不要使用其他存储库。关键是这些存储库中的每一个都使用类似的脚本和类似的自动化ci/cd来构建。与其写自己的解决方案,不如研究他们是如何做的,并使用相同的解决方案。啊,我明白了。我误读了你说的话。我去看看,谢谢!事实证明,我用来安装各种包的依赖项的Paru只支持将包传递给它,然后它将输出文件。这是一个免费的工作很多lol。谢谢你的帮助!
. PKGBUILD
echo "${depends[@]}"