Почему Deployer runLocally не может выполнить эту команду замены строки переменной? - PullRequest
0 голосов
/ 06 февраля 2020

Выполнение этого в 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

PS В конечном счете, я хочу иметь возможность получить имя ветви в переменную, чтобы я мог повторить его здесь: { ссылка }

...