从python为while循环提供交互式bash脚本的输入

时间:2017-12-11 21:59:47

标签: python bash python-3.x python-2.7

我正在尝试使用python运行bash脚本,并希望将终端的输出存储到output.txt文件中。

我的bash脚本名称是exe.bash

#G
G()
{
chmod 0755 some_binary
sudo ./some_binary
}

#Execution starts from here

echo "----------------------------------------"
echo Please select a number
echo 1. something 
echo 2. something 
echo 3. something
echo 4. something
echo 5. something
echo 6. something
echo 7. something

read input
#Select input
    case $input in
    1 ) A ;;
    2 ) B ;;
    3 ) C ;;
    4 ) D ;;    
    5 ) E ;;
    6 ) F ;;
    7 ) G ;;
    * ) echo "invalid input" ;;
    esac
#Done

我的python脚本名称是callexe.py

import subprocess
with open("output.txt", "w+") as output:
    subprocess.call(["./exe.bash", "7", "3"], stdout = output, shell = True)

对于交互式bash脚本,第一个输入是7,它将我们带到无限循环。从那时起,应该给它3作为输入。

我所做的只是失败,因为它只提供了2个参数。有人可以帮我解决这个问题。

0 个答案:

没有答案