Это то, что пытались сделать:
$ wget -qO- www.example.com/script.sh | sh
который тихо загружает script и печатает его на stdout, который затем передается в sh. Это, к сожалению, не совсем работает, не дожидаясь ввода пользователя в разных точках, а также несколько синтаксических ошибок.
Это то, что на самом деле работает:
$ wget -qOscript www.example.com/script.sh && chmod +x ./script && ./script
Но какая разница?
Я думаю, что, может быть, в трубке файл не выполняет файл, а выполняет каждую строку отдельно, но я новичок в таких вещах, поэтому не знаю.