Манипулирование строками в терминале Mac - PullRequest
0 голосов
/ 07 декабря 2018

Знаете ли вы, почему это не работает?

Примечание. Я нахожусь на терминале Mac с ~ / .zshrc

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

echo:

MACOS

Я ожидаю, что эхо MAC

1 Ответ

0 голосов
/ 07 декабря 2018

Попробуйте изменить 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
...