2017-10-05 114 views
0

因此,我試圖通過命令行自動執行在Linux上運行的python應用程序菜單。我知道我需要通過菜單輸入什麼命令,但似乎無法弄清楚如何讓shell腳本執行我想要的操作。而是等到應用程序關閉才能完成腳本。例如:與Linux命令行應用程序交互

我的shell腳本:

#!/usr/bin/bash 

./App.py 
echo '1' 
echo '2' 
echo '3' 

我希望發生

[[email protected] BASH]$ ./auto.sh 
Welcome to App.py! 
Enter 1 to continue or 2 to exit: 1 

Enter 2 to continue or 3 to exit: 2 

等什麼...

會發生什麼事,而不是是,我必須繼續通過菜單我自己然後輸出應用程序終止時的所有回聲。

這裏的一個注意事項是,我無法安裝任何未安裝在Ubuntu中的庫。此計算機未聯網,出於安全原因無法與任何磁介質進行交互。我有什麼選擇?

提前致謝!

+0

篩選https://stackoverflow.com/a/46193408/2836621響應 –

回答

0

您的腳本應如下:

(echo -e "1\n2\n3") | python App.py 
0

你也可以使用 「這裏-DOC」 -

app.py<<DONE 
1 
2 
3 
DONE 

但是我討厭那些。將您的預期響應放到一個文本文件中,並使用從中重定向的stdin執行。

printf "1\n2\n3\n">response.in # I assume it would be a little more complex 
App.py << response.in   # reads response.in as input 

那麼你甚至可以有不同的套在response.1,response.2等