[英]pass python var to bash
我正在制作一個腳本來拍照並將它們寫入一個用“數據和時間”創建/命名的文件夾
我做了這個部分來創建目錄並拍照
pathtoscript = "/home/pi/python-scripts"
current_time = time.localtime()[0:6]
dirfmt = "%4d-%02d-%02d-%02d-%02d-%02d"
dirpath = os.path.join(pathtoscript , dirfmt)
dirname = dirpath % current_time[0:6] #dirname created with date and time
os.mkdir(dirname) #mkdir
pictureName = dirname + "/image%02d.jpg" #path+name of pictures
camera.capture_sequence([pictureName % i for i in range(9)])
然后我想將dirname傳遞給bash腳本(picturesToServer),它將圖片上傳到服務器。 我該怎么做?
cmd = '/home/pi/python-scripts/picturesToServer >/dev/null 2>&1 &'
call ([cmd], shell=True)
也許我可以留在python腳本scp圖片到服務器? 我有一個帶有釋義集的ssh-agent(ssh-add mykey)。
將變量放在環境中(它將作為bash腳本中的常規bash變量提供,例如下面示例中的VAR_NAME
),將call
替換為:
import subprocess
p = subprocess.Popen(cmd, shell=True, env={"VAR_NAME": dirname})
或者將它作為位置參數傳遞(在腳本中$1
形式提供),方法是將cmd
替換為:
cmd = '/home/pi/python-scripts/picturesToServer >/dev/null 2>&1 "{0}" &'.format(dirname)
作為旁注,請考慮在調用子進程時不使用shell = True
。 使用shell = True
是一個壞主意,因為Python文檔中記錄了很多原因
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.