将bash命令输出输出到shell脚本中的数组中



我有以下小脚本:

#!/usr/bin/env bash
packages_installed=($(apt-cache -q pkgnames | tr - _ | tr . _))
echo $packages_installed
if [ ${#packages_installed[@]} -eq 0 ]; then
    echo "+unable_to_find_list_of_installed_packaged"
    logger -p user.error -t find_installed_packages "$(hostname -f) was unable to determine list of installed packages using apt-cache"
else
    for pkg in "${packages_installed[@]}"
    do
        echo "+installed_package_$pkg"
    done
fi

运行此功能:

root@olympus:~# sh test.sh
test.sh: 3: test.sh: Syntax error: "(" unexpected

这似乎表明我在生成已安装的软件包列表的行上犯了一个错误。但是,我很确定这就是您将命令输出输入数组的方式吗?

感觉就像我缺少愚蠢的东西。

感觉就像我错过了一些愚蠢的东西。

确实。

root@olympus:~# sh test.sh
test.sh: 3: test.sh: Syntax error: "(" unexpected

您正在使用sh执行导致错误的脚本。您的脚本看起来不错,数组分配不应该构成任何问题。

使用bash代替执行它。

相关内容

  • 没有找到相关文章