Есть несколько способов сделать это.Что вы, вероятно, должны сделать, потому что это более безопасно, так это использовать конфигурацию, в которой скрипт не должен содержать и передавать имя пользователя и пароль.Например, вы можете настроить ssh или использовать помощник по учетным данным.(Детали зависят от вашей среды, поэтому я бы порекомендовал поискать существующие вопросы и ответы: как их настроить.)
Если вы все еще хотите, чтобы скрипт передавал значения, у вас есть два варианта:: Вы можете использовать форму команды git, которая принимает значения в командной строке (см. Ответ сломанной ноги), или вы можете передавать значения в STDIN (это подход, который вы пытаетесь использовать, но он работает не совсем так, как нужно).вы пытаетесь это сделать).
Когда вы используете |
, вы отправляете «стандартный вывод» команды слева на «стандартный ввод» команды справа.Поэтому, когда вы объединяете команды, как вы показываете, первый echo
отправляет вывод второму echo
- который игнорирует его.Это не то, что вам нужно.
Вам понадобится одна команда, которая выводит имя пользователя и символ конца строки, пароль и другой символ конца строки.Это не легко сделать с эхом (по крайней мере, не переносимо).Вы могли бы сделать что-то вроде
git clone *url* <<EOF
$username
$password
EOF