繁体   English   中英

如何使用C ++在Linux上执行Shell命令并与输出交互?

[英]How to execute shell commands and interact with the output on linux using C++?

我使用Eclipse,并尝试执行用cpp文件编写的shell commands

据我所知,我可以使用system()函数在cpp中执行shell command ,但是如何响应终端中的提示?

我知道在执行某些命令后,shell会要求输入密码,因此我必须将其放入其中。 最初,我尝试将密码放入第二个system()函数,但此方法无效。 尽管我在两个system()函数调用之间都添加了sleep调用,但它不起作用:

system(DO)// after this command the shell asks for a password
sleep(10)
system(Password)`

如何输入密码?

您可以在第一条system说明中输入密码。 如果您的命令类似于getPassword则它将为:

system("echo yourPassword | getPassword");

尽管在程序中包含普通密码是危险的。

更新:

对于SSH,它将不起作用,但对于从控制台获取参数(如apt-get常用命令,它将起作用。 使用sshpass可以正常返回标准输入。 另一种选择是expectTcl ,可以为SSH自动和有条件的进入密码。

同样,完全不建议使用纯文本作为密码。 考虑改用公共密钥身份验证。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM