Мне нужно запустить сценарий по конвейеру через bash
с wget
(а не работает непосредственно с Баш).
$ wget -O - http://example.com/my-script.sh | bash
Это не работает, потому что в моем сценарии есть read
операторы. По какой-то причине они не работают при подключении к bash:
# Piping to bash works in general
$ echo 'hi'
hi
$ echo "echo 'hi'" | bash
hi
# `read` works directly
$ read -p "input: " var
input: <prompt>
# But not when piping - returns immediately
$ echo 'read -p "input: " var' | bash
$
Вместо запроса input:
и запроса значения, как и должно быть, команда чтения просто передается bash
.
Кто - нибудь знает , как я могу конвейер сценарий с read
к bash
?
Процесс замены будет делать то, что вы хотите:
bash <(wget ...)
Тем не менее, я должен поставить под сомнение вашу мотивацию здесь. Если вы управляете веб-сервером (и используете https), возможно, это имеет смысл. Но просто запустить скрипт из слепого интернета очень рискованно.
источник
just running a script from the internet blind is very risky
- Да, мы знаем, что это рискованно, но люди могут доверять сценариям определенных организаций. Смотрите обсуждение в комментариях к ответу @ Xen2050.Что-то не так с:
?
источник
/tmp
, многие программы используют временные файлы. Мне бы не хотелось запускать загруженные скрипты сразу, не посмотрев сначала ...