Доступ к терминалу stdin, когда он является источником самого скрипта bash

Это немного грязно, чтобы объяснить.

У меня есть скрипт, который я хочу развернуть так:

curl -Ls example.com/myscript.sh | bash

Проблема в том, что скрипт читает из стандартного ввода примерно так:

echo "You should edit /srv/pillar/tm.sls now. Comments are in the file."
echo Type "skip" to skip or anything else to edit.
read text
if [ "$text" != "skip" ]; then
sudo pico /srv/pillar/tm.sls
fi

Теперь, так как стандартный ввод очевидно, служащий источником самого скрипта, в настоящее время это не работает. Есть ли способ, которым я могу вернуть терминал?

(Текущее решение состоит в том, чтобы развернуть его следующим образом: curl -Ls example.com/myscript.sh > myscript.sh && bash myscript.sh)

1
задан 19 February 2014 в 16:13

1 ответ

Использовать процесс замены

bash <(curl -Ls example.com/myscript.sh)
.
0
ответ дан 19 February 2014 в 16:13
  • 1
    Большое спасибо, Pilot6! (Я думал, что сохранял его, но на самом деле я wasn' t действительно взволнованный по поводу окон в то время.) – Theseus 7 August 2015 в 22:25

Другие вопросы по тегам:

Похожие вопросы: