Почему Deployer не может runLocally запустить эту команду замены строки переменной?

Запуск этого в bash в моем ящике Homestead работает: symbRefHead=$(git symbolic-ref -q HEAD) && echo $symbRefHead && branch_name="${symbRefHead//refs\/heads\/}" && echo $branch_name

Так почему же запуск через runLocally не работает?

$options = ['tty' => true];
    runLocally('symbRefHead=$(git symbolic-ref -q HEAD) && echo $symbRefHead && branch_name="${symbRefHead//refs\/heads\/}" && echo $branch_name', $options);

Я получаю эту ошибку:

sh: 1: Bad substitution

In Process.php line 250:

  The command "symbRefHead=$(git symbolic-ref -q HEAD) && echo $symbRefHead && branch_name="${symbRefHead//refs\/heads\/}" && echo $branch_name" failed.

  Exit Code: 2(Misuse of shell builtins)

Точно так же эта версия работает в Bash, но не в runLocally: symbRefHead=$(git symbolic-ref -q HEAD) && echo $symbRefHead && to_be_removed="refs/heads/" && branch_name="${symbRefHead/$to_be_removed/}" && echo $branch_name

Очевидно, я пытаюсь удалить подстроку из строковой переменной (поиск и замена ничем), как указано здесь: https://unix.stackexchange.com/questions/104881/remove-particular-characters-from-a-variable-using-bash#comment437753_104887

P.S. В конечном итоге я хочу получить имя ветки в переменной, чтобы я мог повторить его здесь: https://stackoverflow.com/a/59689871/470749


person Ryan    schedule 06.02.2020    source источник
comment
Подстановка параметров, которую вы используете, не является функцией оболочки POSIX, но runLocally выполняет sh, а не bash.   -  person jordanm    schedule 06.02.2020
comment
Почему бы просто не запустить git symbolic-ref -q HEAD с подпроцессом, а затем выполнить синтаксический анализ вывода с помощью php?   -  person jordanm    schedule 06.02.2020
comment
@jordanm Спасибо за подсказку о sh, а не о bash! Я не понимаю вашего второго комментария. Заранее спасибо. (Вы можете опубликовать ответ.)   -  person Ryan    schedule 06.02.2020