【问题标题】:How to stop the "yes" command from repeating other command?如何阻止“是”命令重复其他命令?
【发布时间】:2021-01-11 18:04:54
【问题描述】:

我使用该命令尝试以自动方式回答某个命令中的提示,现在该命令将在终端中无限重复,即使不使用 yes 命令。

我不确定是哪一个引起的,但我通过多种方式使用了 yes 命令来尝试使其工作,例如

yes y | $ANDROID_HOME/tools/bin/sdkmanager
yes | $ANDROID_HOME/tools/bin/sdkmanager
yes $ANDROID_HOME/tools/bin/sdkmanager
$ANDROID_HOME/tools/bin/sdkmanager | yes
$ANDROID_HOME/tools/bin/sdkmanager << yes
$ANDROID_HOME/tools/bin/sdkmanager <<< yes

现在,每当我运行命令 $ANDROID_HOME/tools/bin/sdkmanager 时,它都会输出

/Users/myname/Library/Android/sdk/tools/bin/sdkmanager: line 2414: y: command not found
/Users/myname/Library/Android/sdk/tools/bin/sdkmanager: line 2415: y: command not found
/Users/myname/Library/Android/sdk/tools/bin/sdkmanager: line 2416: y: command not found
...

我该如何阻止它?

【问题讨论】:

  • Stack Overflow 用于编程问题,而不是关于使用或配置 Unix 及其实用程序的问题。 Unix & LinuxSuper User 将是解决此类问题的更好地方。
  • 当您在那里转发时,您需要提供更多详细信息。我不明白你做了什么,但是当你在没有yes 的情况下运行命令时,你无法使命令的行为有所不同。
  • 你应该在你的问题中显示你输入的命令和你得到的输出。目前尚不清楚您如何使用yes 命令以及重复了哪些命令。
  • @Bodo 对不起,我更新了问题
  • 你没有解释你是如何使用yes的。您是否输入了包含yes 的命令行?你修改过脚本吗?脚本的第 2414 行等内容是什么?

标签: linux macos unix command


【解决方案1】:

我刚刚意识到执行这些命令之一

$ANDROID_HOME/tools/bin/sdkmanager << yes y
$ANDROID_HOME/tools/bin/sdkmanager <<< yes y

搞砸了 sdkmanager 文件,现在它只包含字母 y 5530 万次

我只需要重新安装android sdk

【讨论】:

  • 如果你有包含y的行附加到fie,我猜它可能是yes &gt;&gt; $ANDROID_HOME/tools/bin/sdkmanager。如果它只包含带有y 的行,它可能是yes &gt; $ANDROID_HOME/tools/bin/sdkmanager
  • 谢谢兄弟,下次我从互联网上复制粘贴命令时要小心:D
  • 他们都不应该这样做。 &lt;&lt;&lt;&lt;&lt; 都是标准输入 (stdin) 的重定向器。一定有一个额外的命令,也许是某个地方的echognu.org/savannah-checkouts/gnu/bash/manual/…
  • 可能是的@jnovack,我记得在这些命令中多次使用回显
猜你喜欢
  • 1970-01-01
  • 2020-10-05
  • 1970-01-01
  • 1970-01-01
  • 2021-07-06
  • 1970-01-01
  • 2014-04-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多