Это подстановка команд ; вывод команды выполняется так, как если бы она была самой командой.
... поэтому сначала выполняется:
aws s3 cp $1 s3://$2 --recursive
, которая выдает в качестве вывода что-то вроде Completing uploading yadda yadda
. Итак, что же заставляет это делать обратный удар? Запустите это сообщение об успехе как команду!
... поэтому следующая команда, которую пытается выполнить оболочка, похожа на:
Completed yadda yadda yadda
... что, конечно, не с:
Completed: command not found
... потому что Completed
- это не имя программы, которую вы установили.
Нет смысла использовать синтаксис подстановки команд, когда вы не на самом деле не хочу подставлять результат команды где-то. Не используйте синтаксис, который вы не понимаете, если у вас нет конкретной, объяснимой причины, по которой вы считаете, что он вам нужен.