首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将yes传递给sh命令,如curl URL.sh \ sh

如何将yes传递给sh命令,如curl URL.sh \ sh
EN

Stack Overflow用户
提问于 2022-11-11 07:52:18
回答 1查看 33关注 0票数 0

我试图通过一个命令安装星舰,但是当我运行下面的命令时,它会请求键输入。那我怎么能不打字就自动传递"y“呢?我相信yes命令可能会有所帮助,但我不知道如何在这种情况下使用。

代码语言:javascript
复制
$ curl -sS https://starship.rs/install.sh | sh

  Configuration
> Bin directory: /usr/local/bin
> Platform:      unknown-linux-musl
> Arch:          aarch64

> Tarball URL: https://github.com/starship/starship/releases/latest/download/starship-aarch64-unknown-linux-musl.tar.gz
? Install Starship latest to /usr/local/bin? [y/N] 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-11 08:21:58

不能,因为您已经在将curl重定向到sh

检查脚本可以发现您可以使用-y运行它以避免交互提示,所以可能只需这样做。

代码语言:javascript
复制
curl -sS https://starship.rs/install.sh | sh -s -- -y

-s选项允许您从sh命令行将选项传递给脚本,然后需要--sh选项从传递给脚本的选项中分离出来。

在一般情况下,如果脚本是无条件地要求交互式I/O的,则确实需要将其下载到文件中,然后重定向运行该文件。

代码语言:javascript
复制
#!/bin/bash
dest=$(mktemp -t) || exit
trap 'rm -f "$dest"' ERR EXIT  HUP INT TERM
curl -sS https://starship.rs/install.sh >"$dest"
yes | sh "$dest"

ERREXITtrap一起使用是一个Bash扩展。如果您通过手工非正式地运行这一点,那么临时文件的脚本生成和相关的陷阱可能会被一些更特殊的东西所取代。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74399476

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档