Я хотел бы использовать подстановку переменных в конкретной строке, к которой я обращаюсь через команду. Например, если я скопирую что-то в буфер обмена, я получу к нему доступ следующим образом.
$ xclip -o -selection clipboard
Here's a string I just copied.
Если я назначу его переменной, то я могу сделать замену переменной на нем.
$ var=$(xclip -o -selection clipboard)
$ echo $var
Here's a string I just copied.
$ echo ${var/copi/knott}
Here's a string I just knotted.
Тем не менее, есть ли способ сделать подстановку переменной, не назначая ее переменной? Концептуально как то так.
$ echo ${$(xclip -o -selection clipboard)/copi/knott}
bash: ${$(xclip -o -selection clipboard)/copi/knott}: bad substitution
Этот синтаксис не работает, потому что var
должно быть имя переменной, а не строка.
bash
. (И снова подталкивает меня к миграцииzsh
.)