实现demo:

  1. python程序1  含参a调用bash文件
  2. bash文件含参a调用  python程序2
  3. python程序2  返回值v 给bash文件
  4. bash文件 将返回值v 返回给 python程序1

 

  • python程序1  含参a调用bash文件
import os
import subprocess 
from subprocess import PIPE
import sys

if __name__ == '__main__':
    bash_return=os.system( 'bash ./hello.sh settings ')
    print ("bash_return=" +str(bash_return))


    # comp_process = subprocess.run("ls",stdout=PIPE, stderr=PIPE)
    # print(comp_process.stdout)

 

#! /usr/bin/ssh
echo "input: $*"
source /Users/wgt/Desktop/opencvWorkspace/bin/activate
deactivate 

 

 

  • bash文件含参a调用  python程序2
#! /usr/bin/ssh
echo "input: $*"
source /Users/wgt/Desktop/opencvWorkspace/bin/activate
output=`python /Users/wgt/Desktop/opencvTestProject/shell_recall.py $* `
deactivate
echo "output: $output"
  • python程序2  返回值v 给bash文件
import sys

if __name__ == '__main__':

    print(str(sys.argv[1]))
    #settings

 

 

  • bash文件 将返回值v 返回给 python程序1

python1:

import os
import subprocess 
from subprocess import PIPE
import sys

if __name__ == '__main__':
    # bash_return=os.system( 'bash ./hello.sh settings ')
    # print ("bash_return=" +str(bash_return))

    process = subprocess.Popen(['bash','./hello.sh','settings'], stdout=subprocess.PIPE)
    output, error = process.communicate()
    # print(type(output))
    output = output.decode('utf-8')
    print(output)
    print(type(output))

    ret_center = output.split(',')
    ret_center_x = ret_center[0][1:]
    ret_center_y = ret_center[1][1:len(ret_center[1])-2]
    print(ret_center_x)
    # print(len(ret_center[1]))#7
    print(ret_center_y)
    

bash:

#! /usr/bin/ssh
#echo "input: $*"
source /Users/wgt/Desktop/opencvWorkspace/bin/activate
output=`python /Users/wgt/Desktop/opencvTestProject/shell_recall.py $* `
deactivate
echo $output

python2:

import sys

if __name__ == '__main__':
    #print(str(sys.argv[0]))
    # #/Users/wgt/Desktop/opencvTestProject/shell_recall.py
    
    #print(str(sys.argv[1]))
    #settings
    
    test_tuple = (2321,2766)
    print(test_tuple)
    #print(type(test_tuple))

结果:

 串起来咯!

 

另附:

bash读取命令行输入:

echo "Test input: "
read input_msg
echo "Hello, " $input_msg

shell传参参考网址:

  • https://www.runoob.com/linux/linux-shell-passing-arguments.html

python获取bash文件返回值参考网址:

  • https://blog.51cto.com/u_14691/6359179

python subprocess模块run()和popen()参考网址:

  • https://www.zadmei.com/zpzyxbml.html

python 字符串切片:

  • https://www.ycpai.cn/python/xBRw8f2K.html

python 字符串分割:

  • https://blog.csdn.net/weixin_45586124/article/details/121174189

 

posted on 2023-08-10 08:59  Jolyne123  阅读(21)  评论(0)    收藏  举报