Я хотів би використовувати змінну підстановку для певного рядка, до якого я отримую доступ через команду. Наприклад, якщо я щось копіюю в буфер обміну, я можу отримати доступ до нього так.
$ 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
.)