安装Influxdb2.0时出现zsh bad substitution错误
Zsh bad substitution error when installing Influxdb2.0
我正在按照此 article 中的安装说明进行操作,但是在执行此命令时我从 zsh
中得到了 bad substitution error
:
export DISTRIB_ID=$(lsb_release -si); export DISTRIB_CODENAME=$(lsb_release -sc)
echo "deb [signed-by=/etc/apt/trusted.gpg.d/influxdb.gpg] https://repos.influxdata.com/${DISTRIB_ID,,} ${DISTRIB_CODENAME} stable" | sudo tee /etc/apt/sources.list.d/influxdb.list > /dev/null
我应该为 zsh 更改什么?
${DISTRIB_ID,,}
是一个 Bash 特定的参数扩展,以小写变量的值。
https://askubuntu.com/a/383360/25077建议${(L)DISTRIB_ID}
作为Zsh中的对应操作。
但是没有真正的理由使用任何特定于 shell 的结构;该操作在 POSIX sh
中也很容易移植(尽管以外部进程为代价)。
无论如何,除非有其他需要,这里的 export
语句也是不必要的。另见 Correct Bash and shell script variable capitalization
distrib_id=$(lsb_release -si | tr A-Z a-z)
distrib_codename=$(lsb_release -sc)
echo "deb [signed-by=/etc/apt/trusted.gpg.d/influxdb.gpg] https://repos.influxdata.com/$distrib_id $distrib_codename stable" | sudo tee /etc/apt/sources.list.d/influxdb.list > /dev/null
正如原文post中的注释所说,${DISTRIB_ID,,}
在bash中用于扩展小写参数。 ${DISTRIB_ID:l}
.
在 zsh 中也是如此
所以 zsh 中的整个工作命令是:
export DISTRIB_ID=$(lsb_release -si); export DISTRIB_CODENAME=$(lsb_release -sc)
echo "deb [signed-by=/etc/apt/trusted.gpg.d/influxdb.gpg] https://repos.influxdata.com/${DISTRIB_ID:l} ${DISTRIB_CODENAME} stable" | sudo tee /etc/apt/sources.list.d/influxdb.list > /dev/null
我正在按照此 article 中的安装说明进行操作,但是在执行此命令时我从 zsh
中得到了 bad substitution error
:
export DISTRIB_ID=$(lsb_release -si); export DISTRIB_CODENAME=$(lsb_release -sc)
echo "deb [signed-by=/etc/apt/trusted.gpg.d/influxdb.gpg] https://repos.influxdata.com/${DISTRIB_ID,,} ${DISTRIB_CODENAME} stable" | sudo tee /etc/apt/sources.list.d/influxdb.list > /dev/null
我应该为 zsh 更改什么?
${DISTRIB_ID,,}
是一个 Bash 特定的参数扩展,以小写变量的值。
https://askubuntu.com/a/383360/25077建议${(L)DISTRIB_ID}
作为Zsh中的对应操作。
但是没有真正的理由使用任何特定于 shell 的结构;该操作在 POSIX sh
中也很容易移植(尽管以外部进程为代价)。
无论如何,除非有其他需要,这里的 export
语句也是不必要的。另见 Correct Bash and shell script variable capitalization
distrib_id=$(lsb_release -si | tr A-Z a-z)
distrib_codename=$(lsb_release -sc)
echo "deb [signed-by=/etc/apt/trusted.gpg.d/influxdb.gpg] https://repos.influxdata.com/$distrib_id $distrib_codename stable" | sudo tee /etc/apt/sources.list.d/influxdb.list > /dev/null
正如原文post中的注释所说,${DISTRIB_ID,,}
在bash中用于扩展小写参数。 ${DISTRIB_ID:l}
.
所以 zsh 中的整个工作命令是:
export DISTRIB_ID=$(lsb_release -si); export DISTRIB_CODENAME=$(lsb_release -sc)
echo "deb [signed-by=/etc/apt/trusted.gpg.d/influxdb.gpg] https://repos.influxdata.com/${DISTRIB_ID:l} ${DISTRIB_CODENAME} stable" | sudo tee /etc/apt/sources.list.d/influxdb.list > /dev/null