什么是无效的间接扩展,为什么它会阻止我安装这个程序?

What is invalid indirect expansion and why does it prevent me from installing this program?

我正在尝试在我的计算机上安装 Nasa OpenSatKit。它是 Linux 的 Ubuntu 20.04 分布。当我尝试安装时收到此命令:

/dev/fd/63: line 16: OPEN_SAT_KIT_PATH: invalid indirect expansion

我使用这个 wget 命令安装它: bash<(\wget -qO- https://raw.githubusercontent.com/OpenSatKit/OpenSatKit/vendor/install.sh

此外,它说第 16 行是问题所在。我查看了第 16 行的安装,这是前 18 行: `

#!/usr/bin/env bash

OPEN_SAT_KIT_VERSION="2.2.0"
BASE_DIR="$(pwd)"

# Intentional order: OSK Archive, Dependencies, COSMOS, Build System 
# - Dependencies cover OSK's needs, COSMOS may need additional ones
# - OSK last ensures OSK COSMOS config files not overrriden

main()
{

announce "INSTALLATION WILL TAKE TIME AND INCLUDES PROMPTS!"

# set default path unless environment var exists
if [ ! -n "${!OPEN_SAT_KIT_PATH}" ]; then
   OPEN_SAT_KIT_PATH="`pwd`/OpenSatKit-master/"
fi

`

请注意,第 16 行是 " if [ ! -n "${!OPEN_SAT_KIT_PATH}" ]; then " 。 有人可以帮我安装这个或告诉我为什么它不起作用吗?

这里好像打错了。我猜代码应该检查变量是否未设置,如果未设置,则为其分配一些默认值。删除 !.

可以找到有关间接扩展的更多信息 in this thread and in bash manual shell expansions

据我了解,当前版本的 OpenSatKit,尤其是 COSMOS,与 Ubuntu 20.04 不兼容。考虑使用 Ubuntu 18.4 LTS 安装它。