簡體   English   中英

傳遞輸入參數后如何從Python執行Shell腳本

[英]How to execute shell script from Python after passing input parameters

我的JSON文檔jsonStr有一個shell腳本,可以使用Python子jsonStr模塊執行該腳本,並且可以正常工作。

以下是我的Python腳本,如果我執行外殼腳本而不傳遞任何內容,該腳本就可以正常工作-

import subprocess
import json

testing = "HelloWorld"

jsonStr = '{"script":"#!/bin/bash \\n STRING=\'Hello World\' \\n echo $STRING \\n"}'

j = json.loads(jsonStr)

print "start"
subprocess.call(j['script'], shell=True)
print "end"

現在有什么方法可以將變量值從Python腳本傳遞到json文檔中的shell腳本嗎? 這意味着我需要將testing值傳遞給我的shell腳本,然后在從子流程模塊執行完之后,從shell腳本中打印testing的值。

這可能嗎?

就像文檔所說的那樣,在env參數中向子進程提供環境變量。 請注意,提供參數會替換整個環境。 如果您希望現有值可用,則需要提供它們。

試試這個命令:

    subprocess.call(j['script', str(var1), str(var2)], shell=True)

你不能用這個嗎?

import subprocess
import json

testing = "HelloWorld"

jsonStr = '{"script":"#!/bin/bash \\n STRING=\'%VP%\' \\n echo $STRING \\n"}'.replace('%VP%', testing)

j = json.loads(jsonStr)

print "start"
subprocess.call(j['script'], shell=True)
print "end"

在JSON中,您可以有一個占位符,並且可以替換該占位符,而不是將變量動態傳遞給它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM