我正在为
github项目构建一个bootstrap,并希望它是一个简单的单行程序.该脚本需要密码输入.
这可以工作并停止脚本等待输入:
curl -s https://raw.github.com/willfarrell/.vhosts/master/setup.sh -o setup.sh bash setup.sh
这不,只是跳过输入请求:
curl -s https://raw.github.com/willfarrell/.vhosts/master/setup.sh | bash
setup.sh包含的代码如下:
# code before read -p "Password:" -s password # code after
是否可以有一个干净的单线?如果是这样,那怎么可能呢?
解决方法:
使用三个命令而不是管道输出.
curl -s https://raw.github.com/willfarrell/.vhosts/master/setup.sh -o vhosts.sh&& bash vhosts.sh&& rm vhosts.sh
解决方法
使用管道,读取从标准输入(管道)读取,但是shell已经读取了所有标准输入,因此读取没有任何内容.