(${var//=/ }) 在 Alpine Linux 中不起作用,但在 zsh 中可以正常工作。有类似的选择吗?
(${var//=/ }) Doesn't work within Alpine Linux while works fine within zsh. Is there similar alternative?
我正在使用此代码段将字符串拆分为数组
line=FOO=BAR
arr=(${line//=/ })
以后可以使用,例如(获取拆分值):
varname=${arr[0]}
在 zsh 环境中运行良好,但在 Alpine Linux /bin/sh
(也许是 ash
)环境中不起作用。我得到:
./env.sh: line 15: syntax error: unexpected "(" (expecting "done")
是否有适用于 Alpine Linux 的等效字符串拆分命令?
使用 heredoc:
line=FOO=BAR
IFS='=' read -r var value <<EOF
$line
EOF
我正在使用此代码段将字符串拆分为数组
line=FOO=BAR
arr=(${line//=/ })
以后可以使用,例如(获取拆分值):
varname=${arr[0]}
在 zsh 环境中运行良好,但在 Alpine Linux /bin/sh
(也许是 ash
)环境中不起作用。我得到:
./env.sh: line 15: syntax error: unexpected "(" (expecting "done")
是否有适用于 Alpine Linux 的等效字符串拆分命令?
使用 heredoc:
line=FOO=BAR
IFS='=' read -r var value <<EOF
$line
EOF