我正在按照本文中的安裝說明進行操作,但在執行此命令時會bad substitution error收到以下資訊: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,,} ${DISTRIB_CODENAME} stable" | sudo tee /etc/apt/sources.list.d/influxdb.list > /dev/null
我應該為 zsh 更改什么?
uj5u.com熱心網友回復:
${DISTRIB_ID,,} 是特定于 Bash 的引數擴展,用于小寫變數的值。
https://askubuntu.com/a/383360/25077建議${(L)DISTRIB_ID}作為 Zsh 中的相應操作。
但是沒有真正的理由使用任何一個 shell 特有的結構。該操作也很容易在 POSIX 中進行移植sh(盡管以外部行程為代價)。
對于它的價值,除非有其他原因,否則這里的export陳述也是不必要的。另請參閱正確的 Bash 和 shell 腳本變數大寫
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
uj5u.com熱心網友回復:
正如原始帖子中的評論所說,${DISTRIB_ID,,}在bash中使用小寫擴展引數。zsh 中的相同操作由${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
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/413729.html
標籤:
上一篇:將變數內容匯出到檔案
