У меня есть сценарий оболочки, который предлагает пользователю ввести вручную (например, 1
& enter
, 2
& enter
, так далее). Я хотел бы автоматизировать этот процесс, передав заранее определенные аргументы скрипту во время выполнения, возможно ли это? Напр. Как это сделать?
Пример:
- Запускаем скрипт:
bash <(curl -s -L domain.com/myscript.sh)
- Подождите 1 секунду
- Войти
1
иenter
- подожди 1 секунду
- Войти
2
иenter
Цени любую помощь
2 ответа
Если ваша функция bash или скрипт принимает параметр, вот как задать ему значение по умолчанию:
VAR=${1:-DEFAULTVALUE}
Это присваивает VAR значение первого аргумента, используя вместо него DEFAULTVALUE, если оно не указано. Обратите внимание на символы двоеточия и тире.
Вот пример функции, которая запускает простой HTTP-сервер, обслуживающий из текущего каталога, с необязательным параметром для прослушиваемого порта, который по умолчанию равен 8000:
function server() {
local port="${1:-8000}"
python -m SimpleHTTPServer "$port"
}
Вы можете передать stdin своей команды следующим образом:
echo '1n2' | <command>