Mac 终端中的字符串操作

String manipulation in Mac terminal

你知道为什么这不起作用吗?

请注意,我在 Mac 终端上使用 ~/.zshrc

FOO="MACOS"
FOO=${FOO//$OS/}
echo $FOO

回声:

MACOS

我希望它能回应 MAC

尝试将 FOO=${FOO//$OS/} 更改为 FOO=${FOO//OS/},它应该会飞起来。为什么因为 $ 我们在想要打印任何变量的值时使用,但在这种情况下它不是变量,它是我们提到的字符串(在 BASH 上测试)。

如果您想使用 $(我们可以通过创建另一个值为字符串 OS 的变量来使用它),请尝试以下操作。

os="OS"            ##Creating a variable named os with string value OS.
FOO="MACOS"        ##Creating variable FOO with value of string MACOS.
FOO=${FOO//$os/}   ##Using variable expansion of BASH to remove variable `os` value from variable `FOO` here and saving it into `FOO` variable itself.
echo "$FOO"        ##Printing value of variable `$FOO` here.
MAC