Bash 绕过自制安装脚本中的提示(按回车键)
安装自制软件的非常简单的脚本:Bash 绕过自制安装脚本中的提示(按回车键),bash,homebrew,Bash,Homebrew,安装自制软件的非常简单的脚本: #!/bin/bash ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)" 输出结果如下: ==> This script will install: /usr/local/bin/brew /usr/local/Library/... /usr/local/share/man/man1/brew.1 Press RETURN to contin
#!/bin/bash
ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"
输出结果如下:
==> This script will install:
/usr/local/bin/brew
/usr/local/Library/...
/usr/local/share/man/man1/brew.1
Press RETURN to continue or any other key to abort
如何在这样的脚本中按enter键?是否期望是最佳路径?读取的源代码——它仅在stdin是TTY时提示。如果从/dev/null
重定向stdin,它将根本不会提示。因此:
ruby \
-e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" \
</dev/null
ruby\
-e“$(旋度-fsSL)https://raw.githubusercontent.com/Homebrew/install/master/install)" \
这是为了:
:
这对我来说很好
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null
ruby-e“$(curl-fsSLhttps://raw.githubusercontent.com/Homebrew/install/master/install)“
如果它要求按回车键
为了更清楚地了解这一点,请掌握brew文档
https://docs.brew.sh/
要做的第一件事是看看是否可以通过重定向stdin从/dev/null
:ruby-e“$(curl…)…来跳过这一点,这意味着如果自制程序在这种情况下中止,您可以提交一个bug(或提交一个补丁),因为它表现不好。ruby-e…<@datasmid两者之间存在差异,我的解决方案不依赖于未记录的功能——即“它仅在stdin是TTY时提示”。@l0b0,当然,但是如果没有记录它将从stdin而不是从TTY读取,那么我们无法(记录在案的,正在进行的)保证它无论如何都能工作。所有方面都依赖未记录的行为。@datasmidyes
是而且一直都有记录;它是GNU核心实用程序的一部分。这意味着它从一开始就出现在每一个符合POSIX标准的系统上。你没有使用它并不意味着它不是真的@todd_dsm,所有POSIX系统上都存在GNU coreutils的说法是完全错误的——许多Unix(包括MacOS、FreeBSD、Solaris/SunOS,坦率地说,大多数商用Unixlike)使用自己的实用程序,而不是GNU实现。POSIX“外壳和实用程序”部分的目录位于yes
不是这个集合的一部分。@todd_dsm,……至于“从一开始”,GNUyes
(它早于coreutils,最初作为shellutils的一部分编写)是在1991年首次编写的。UNIX在这一点上已经存在了很长时间。我可以在安装命令中添加用户密码以避免用户交互吗?@FilthKnight您是否能够绕过密码?我也面临着这个问题。如何将它与echo$password | sudo-S…
?@jinbeomhong,只需取出@charlesduff,但如何自动安装自制软件?你能写一个完整的命令吗?我尝试了yes'| echo“$password”| sudo-S/bin/bash-c“$(curl-fsSLhttps://raw.githubusercontent.com/Homebrew/install/master/install.sh)“
也是。在上面的段落中,上述维护人员也提到了TTY检查(“检查它是否在不活动的终端中运行”),这是一个检查,它@CharlesDuffy:没有异议,您接受的答案的输入重定向是有效的。也就是说,我仍然喜欢并使用这个版本,因为a)它稍微短一些,b)是MikeMcQuaid编写的。(另外,我认为您希望在评论中将“不活动”编辑为“互动”)。唉,在提出建议时,5分钟的编辑窗口早就过时了。这是最简单的解决方案,可以让安装程序摆脱陷入按RETURN
的困扰。这在2021年3月对我起到了作用
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null
Press enter
https://docs.brew.sh/