Запустить bash скрипт из файла с вводом - PullRequest
0 голосов
/ 18 марта 2020

Я хочу создать простой bash сценарий, который создает для l oop файл с командами, выполняет эти команды и завершается при возникновении ошибки. У меня есть что-то вроде этого

#!/bin/bash
while IFS= read -r line; do
    echo $line
    output=$(eval $line)
    if [ $? -eq 0 ]
    then
        echo ok
    else
        echo $output
        break
    fi
    echo
done < summary.txt

Проблема в том, что первая команда, которую я пытаюсь сделать, это команда sudo, поэтому я должен ввести пароль. Я попытался поместить это в команду как

sudo -S <<< password <<< Y command

без удачи. Я проверил, что работает, если я просто положил его напрямую, не читая его (не помещая его в виде строки). Дело в том, что без l oop программа была бы длинной без особого смысла.

Спасибо

1 Ответ

1 голос
/ 18 марта 2020
echo <password> | sudo -S < your command>

От man sudo

   -S, --stdin
                 Write the prompt to the standard error and read the password from the standard input instead of using the terminal
                 device.  The password must be followed by a newline character.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...