实现demo:
- python程序1 含参a调用bash文件
- bash文件含参a调用 python程序2
- python程序2 返回值v 给bash文件
- 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
浙公网安备 33010602011771号