替换 Zsh 变量中的字符

Sta*_*hus 2 zsh

我试图用特定变量中的字符替换所有-字符。_尝试使用该tr功能。我缺少什么?

谢谢!

user@mbp-user ~ % echo $APP_ID
app1_someinfo_info-text_text-indfo_text
user@mbp-user ~ % APP_ID= $APP_ID tr - _
zsh: command not found: app1_someinfo_info-text_text-indfo_text
user@mbp-user ~ % APP_ID= $APP_ID tr "-" "_"
zsh: command not found: app1_someinfo_info-text_text-indfo_text
user@mbp-user ~ % 
Run Code Online (Sandbox Code Playgroud)

Pau*_*ney 7

您可以在不调用任何其他进程的情况下执行此操作。

$ APP_ID=app1_someinfo_info-text_text-indfo_text
$ echo $APP_ID
app1_someinfo_info-text_text-indfo_text
$ echo ${APP_ID//-/_}
app1_someinfo_info_text_text_indfo_text
Run Code Online (Sandbox Code Playgroud)

或者重新分配给同一个变量

$ APP_ID=${APP_ID//-/_}
Run Code Online (Sandbox Code Playgroud)

具体来说,我们正在使用该模式

name//pattern/string
Run Code Online (Sandbox Code Playgroud)

它替换变量 中所有出现的patternwith 。stringname