gpt4 book ai didi

linux - 如何为 bash 脚本中的命令模拟两次连续的 ENTER 键按下?

转载 作者:IT王子 更新时间:2023-10-29 00:38:48 24 4
gpt4 key购买 nike

[编辑]它可以被认为是[这个问题][1]的延伸。 echo |命令上述命令可用于向命令的第一个输入请求提供一个“ENTER”字符。

如何在第二个输入请求中向同一命令提供下一个“ENTER”字符。

如果需要任何其他详细信息,请发表评论。

我给出了我想要实现的具体示例。我需要在我的 shell 脚本中运行 SSH-keyGen 命令。它将要求以下输入:

  1. 输入目标文件名
  2. 输入密码
  3. 再次输入密码

我们如何将这三个输入传递给命令?

我试过,

echo -ne "\n \n"| ssh-keygen  //which is passing two new lines for the first input request only.

echo -ne "\n"|(echo -ne "\n"|ssh-keygen)//还是没有结果

注意:我在上面的两个命令中避免了输入文件名请求,只是为了让事情变得简单

最佳答案

例如,您可以使用任一个

echo -e "\n"

echo -en "\n\n"

-e 选项告诉 echo 解释转义字符。 \n 是换行符(输入)。因此第一个打印由于 \n 而产生的换行符,然后是另一个,因为 echo 通常会附加一个换行符。

-n 选项告诉 echo 禁止添加隐式换行符。因此,要获得两个换行符,您需要指定两个 \n

编辑:

这里的问题是 ssh-keygen 很特殊。出于安全考虑,密码不是从标准输入中读取的,而是直接从终端读取的!要提供密码(即使是空密码),您需要使用 -P 选项。因为你只需要一个 ENTER(用于文件路径提示),这个命令应该有效:

echo | ssh-keygen -P ''

(注意中间没有空格的两个 ':它们很重要!)

关于linux - 如何为 bash 脚本中的命令模拟两次连续的 ENTER 键按下?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30712126/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com