wil*_*ell 5 macos bash terminal curl
我正在为github项目构建一个bootstrap,并希望它是一个简单的单行程序.该脚本需要密码输入.
这可以工作并停止脚本等待输入:
curl -s https://raw.github.com/willfarrell/.vhosts/master/setup.sh -o setup.sh
bash setup.sh
Run Code Online (Sandbox Code Playgroud)
这不,只是跳过输入请求:
curl -s https://raw.github.com/willfarrell/.vhosts/master/setup.sh | bash
Run Code Online (Sandbox Code Playgroud)
setup.sh包含的代码如下:
# code before
read -p "Password:" -s password
# code after
Run Code Online (Sandbox Code Playgroud)
是否可以有一个干净的单线?如果是这样,那怎么可能呢?
解决方法:
使用三个命令而不是管道输出.
curl -s https://raw.github.com/willfarrell/.vhosts/master/setup.sh -o vhosts.sh && bash vhosts.sh && rm vhosts.sh
我和OP有同样的问题,正在寻找答案。这个问题是我在 Google 上最先遇到的问题之一,因为它还没有真正的答案,所以这是我最终偶然发现的命令,它解决了我read在远程脚本中使用的需要。
bash <(curl -s https://example.com/my-bash-script.sh)
Run Code Online (Sandbox Code Playgroud)