我的远程文件的内容:
#!/bin/sh
read foo && echo "$foo"
我在终端本地做的事情:
$ curl -fLSs http://example.com/my-remote-file.sh | sh
我期待的是什么:
下载的脚本应提示用户输入内容并等待用户输入。
实际发生的事情:
下载的脚本会跳过read
命令并继续执行。
问题:
如何提示用户输入通过curl
下载的脚本中的内容?我知道sh <(curl -fLSs http://example.com/my-remote-file.sh)
正在运行,但这不符合POSIX标准,我想实现这一目标。
答案 0 :(得分:2)
问题是 stdin 是从curl
而不是键盘读取的。您需要更改脚本以指示它专门从终端读取,如下所示:
read input < /dev/tty
echo $input