3

Я читал, что классическая форма подстановки команд использует обратные кавычки, а (...) форма заменяет обратные кавычки для подстановки команд. Тем не менее, приведенный ниже код дает другой результат. в чем разница ?

#backticks.sh
#!/bin/bash
a=`echo Hello!`   # Assigns result of 'echo' command to 'a' ...
echo $a   # output: Hello!

#parenthesis.sh
#!/bin/bash
a=(echo Hello!)   # Assigns result of 'echo' command to 'a' ...
echo $a  # output: echo 

1 ответ1

3

То, что вам не хватает здесь, это $ .

В bash есть две формы подстановки команд: обратные кавычки, которые вы иллюстрировали, и заключенные в $(command) .

Что вы должны использовать это:

#!/bin/bash

a=$(echo Hello!)

echo $a

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .