簡體   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