Каково значение $ и {} в `find ${x} *`

У меня есть следующее:

x=/
find ${x} *

Теперь это похоже на find / *

Какое значение имеет $ а также {} в find ${x} *

1 ответ

Решение

$... обозначает переменную, и когда следует фигурные скобки ${...}, вы предоставляете границу для переменной, чтобы вы могли запустить ее рядом со строковым литералом, например:

$ FLAVOUR="cheese"
$ echo "I like ${FLAVOUR}y crisps"
I like cheesey crisps

Без скобок вы бы увидели:

$ echo "I like $FLAVOURy crisps"
I like  crisps

Что, хотя и правда, не то, что вы действительно хотели.

Почему это используется в вашем примере, вне меня. Это не обязательно.


Фигурные скобки также используются для поиска в массиве bash, когда вы хотите указать индекс, но это не имеет ничего общего с вашим примером:

$ arr=(*)
$ echo ${arr[3]} # print third item; 1-indexed? blimey.
jumbo-small.jpg
$echo ${arr[@]} # print whole array
glyphicons-halflings.png glyphicons-halflings-white.png jumbo.jpg jumbo-small.jpg
Другие вопросы по тегам