[已编辑]
它可以被认为是[这个问题][1]的延伸。echo | command
上述命令可用于向命令的第一个输入请求提供一个“ENTER”字符。
我如何在第二个输入请求中向同一命令提供下一个“ENTER”字符。
如果需要任何其他详细信息,请评论。
我给出了我想要实现的具体示例。
我需要跑SSH-keyGen
我的 shell 脚本中的命令。
它将要求以下输入:
- 输入目标文件名
- 输入密码
- 再次输入密码
我们如何将这三个输入传递给命令?
我尝试过,
echo -ne "\n \n"| ssh-keygen //which is passing two new lines for the first input request only.
and
echo -ne "\n"|(echo -ne "\n"|ssh-keygen)// but still no positive result
注意:我避免了上述两个命令中的输入文件名请求,只是为了让事情变得简单
例如,您可以使用
echo -e "\n"
or
echo -en "\n\n"
The -e
选项告诉echo
解释转义字符。\n
是换行(输入)字符。所以第一个打印换行符是由于\n
,然后是另一个echo
通常会附加一个换行符。
The -n
选项告诉echo
禁止添加隐式换行符。要获得两个换行符,您需要指定两个\n
.
Edit:
这里的问题是ssh-keygen
很特别。出于安全考虑,密码不是从标准输入读取,而是直接从终端读取!要提供密码(即使是空密码),您需要使用-P
选项。由于您只需要按一次 ENTER(用于文件路径提示),因此此命令应该有效:
echo | ssh-keygen -P ''
(注意两个'
之间没有空格:它们很重要!)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)