ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

Разница между ${} и $() в Bash

Разница между ${} и $() в Bash

Одной из ключевых особенностей Bash является его способность использовать различные типы синтаксиса для выполнения различных задач. Двумя из этих синтаксисов являются синтаксисы ${} и $(), которые часто используются взаимозаменяемо, но имеют разное применение. В этой статье будут рассмотрены различия между ${} и $() в Bash.

 

${} в Bash — расширение параметра

Синтаксис ${}, также известный как расширение параметра, используется для доступа к значению переменной в Bash. Он также используется для выполнения различных расширений параметров, таких как извлечение подстроки, изменение регистра и сопоставление с образцом. Ниже приведен синтаксис использования ${} в сценариях bash:

${variable}

 

Вот пример, демонстрирующий использование этого синтаксиса:

#!bin/bash

name="Andrey"

echo "Мое имя ${name}"

 

В приведенном выше примере синтаксис ${name} используется для доступа к значению переменной name и включения его в выходную строку:

andreyex@destroyer:-$ bash bashfile.sh

Мое имя Andrey 

andreyex@destroyer: -S

 

$() в Bash — подстановка команд

С другой стороны, синтаксис $(), также называемый подстановкой команд, используется для выполнения команды и захвата ее вывода. Синтаксис выглядит следующим образом:

$(command)

 

Вот пример использования синтаксиса $():

#!bin/bash

files=$(ls)

echo "Файлы в текущем каталоге следующие: ${files}"

 

Здесь синтаксис $() используется для выполнения команды ls и записи ее вывода в переменную files. Принимая во внимание, что синтаксис ${} затем используется для включения списка файлов в выходную строку:

andreyex@destroyer:~$ bash bashfile.sh

Файлы в текущем каталоге следующие: bashfile.sh

Desktop

Documents

Downloads

Music

Pictures

Public

Templates

Videos

andreyex@destroyer: -$

 

В целом синтаксис ${} используется для доступа к значению переменной, а синтаксис $() используется для выполнения команды и захвата ее вывода. Оба синтаксиса используются по-разному и не являются взаимозаменяемыми.

 

Заключение

Понимание различий между ${} и $() в Bash необходимо для эффективного написания сценариев оболочки, хотя оба синтаксиса могут выглядеть одинаково, они имеют разные функции и должны использоваться соответственно. Используя правильный синтаксис для правильной задачи, вы можете повысить эффективность и удобочитаемость ваших сценариев Bash.

Exit mobile version