Size: a a a

2020 December 07

VS

Vladimir Suisei in pro.bash
Вопрос куда делся вывод
источник

Е

Егор in pro.bash
Подскажите, если консольная команда требует ввод логина и пароля, как написать скрипт который будет их вводить за меня (я их захардкожу). Аля
echo "login" "password" | git pull
источник

DA

Dr. Alan in pro.bash
echo "login"; sleep 1; echo "password"🤔
источник

DA

Dr. Alan in pro.bash
если только для гита нужно, то там как-то можно сохранить данные
источник

Е

Егор in pro.bash
Dr. Alan
echo "login"; sleep 1; echo "password"🤔
А программу вызвать как?
источник

Е

Егор in pro.bash
Оно ведь сначала напечатает, а потом вызовет
источник

ł

łibfitź.r13.a in pro.bash
Для такого есть expect
источник

ł

łibfitź.r13.a in pro.bash
Но лучше так не делать
источник

∀lǝxǝʎ in pro.bash
Есть ещё sshpass, но так тоже делать не стоит
источник

∀lǝxǝʎ in pro.bash
для git и т.п. вещей лучше завести ssh ключ без пароля, если очень надо
источник

∀lǝxǝʎ in pro.bash
или грузить его в агент ручками, а дальше пусть скрипт работает от юзера с агентом
источник

VS

Vladimir Suisei in pro.bash
Vladimir Suisei
Вопрос куда делся вывод
Ладно, видимо вопрос слишком сложный.

Есть вопрос по-проще (возможно)
Все мы знаем, что после программы ее результат лежит в $?
А есть ли способ собственноручно положить число в "?" ?
источник

∀lǝxǝʎ in pro.bash
давайте не будем называть exit code результатом
источник

аᶘ

асоциальный пикотран... in pro.bash
Vladimir Suisei
Ладно, видимо вопрос слишком сложный.

Есть вопрос по-проще (возможно)
Все мы знаем, что после программы ее результат лежит в $?
А есть ли способ собственноручно положить число в "?" ?
/bin/sh -c 'exit 123'?
источник

VS

Vladimir Suisei in pro.bash
Гениально, спасибо
источник

∀lǝxǝʎ in pro.bash
способа кроме return или exit сразу не придумывается. да
источник

VS

Vladimir Suisei in pro.bash
∀lǝxǝʎ
способа кроме return или exit сразу не придумывается. да
Другого и не надо
источник

аᶘ

асоциальный пикотран... in pro.bash
Vladimir Suisei
А теперь такой вопрос
При запуске bc пишутся сообщения
Если запустить bc > out , на экране ничего, выйти из bc и cat out то там ничего
Потому что программа может легко понять, ассоциирован ли stdout с tty/pts или же с файлом, и для обоих вариантов может быть разное поведение.

Если bc видит, что stdout/stdin → tty/pts, то предполагается, что программа открыта интерактивно, а значит нужно показывать версию программы.

Если bc видит, что stdout/stdin → файл/пайп, значит мы работаем неинтерактивно, а значит не надо печатать ничего для юзера, вроде версии bc.
источник

VS

Vladimir Suisei in pro.bash
асоциальный пикотранзистор ᶘಠᴥಠᶅ
Потому что программа может легко понять, ассоциирован ли stdout с tty/pts или же с файлом, и для обоих вариантов может быть разное поведение.

Если bc видит, что stdout/stdin → tty/pts, то предполагается, что программа открыта интерактивно, а значит нужно показывать версию программы.

Если bc видит, что stdout/stdin → файл/пайп, значит мы работаем неинтерактивно, а значит не надо печатать ничего для юзера, вроде версии bc.
Т.е. это bc приняло решение мне отказать в выводе в файл. Понятно, спасибо
источник

∀lǝxǝʎ in pro.bash
асоциальный пикотранзистор ᶘಠᴥಠᶅ
Потому что программа может легко понять, ассоциирован ли stdout с tty/pts или же с файлом, и для обоих вариантов может быть разное поведение.

Если bc видит, что stdout/stdin → tty/pts, то предполагается, что программа открыта интерактивно, а значит нужно показывать версию программы.

Если bc видит, что stdout/stdin → файл/пайп, значит мы работаем неинтерактивно, а значит не надо печатать ничего для юзера, вроде версии bc.
у bc есть ключ --interactive
источник