Ich habe diesen Shell-Skript (durch die Dateinamen genannt depends
) gespeichert in meinem $PATH
:Wie konvertiert man Python-Listen in eine Shell-lesbare Reihe von Strings?
#!/bin/bash
for i in "[email protected]"
do
depends=+("nodejs-$i")
done
echo $depends
und der Eingang (dh [email protected]
) es ausgelegt ist, ist in dem Beispiel-Format zu nehmen:
'flatten' 'once' 'is-file' 'multistream' 'piece-length' 'junk' 'xtend' 'bencode' 'readable-stream' 'run-parallel 'filestream' 'simple-sha1' 'minimist' 'block-stream2'
. So würde Ich mag die Abhängigkeiten in einer package.json
Datei aufgelistet schreiben zu können, enthielten in der DEP
Liste Variable diesen Python-Skript (die die Dateinamen haben npm2.py
):
import json
from sys import argv
print(argv[1])
from subprocess import call
with open("/home/fusion809/OBS/home:fusion809:arch_extra/nodejs-" + argv[1] + "/src/package/package.json") as json_file:
json_data = json.load(json_file)
deps = json_data["dependencies"]
LEN=len(deps)
print(LEN)
i=0
DEP=list()
print(DEP)
for key, value in deps.items():
print(key)
DEP.append(key)
i = i+1
print(i)
#call(["cpobsn", key, argv[1]])
print(DEP)
call("depends", DEP) # returns errors as DEP is a list!
eine neue Variablen, sagen DEPS
, so dass es dann als Eingabe für das Shell-Skript depends
verwendet werden kann. Wenn es hilft hier ist mein aktuell DEP
Variable, die Ich mag würde auf die Standardausgabe zuvor gezeigt, konvertieren:
['flatten', 'once', 'is-file', 'multistream', 'piece-length', 'junk', 'xtend', 'bencode', 'readable-stream', 'run-parallel', 'filestream', 'simple-sha1', 'minimist', 'block-stream2']
Daher bin ich hier zu fragen, wie ich eine Python-Liste in Shell-lesbaren Leerzeichen getrennten Satz umwandeln kann von Saiten.
Ich denke, Sie können in Ihrer Shell-Terminologie verwirrt sein. Ihr Beispielcode übergibt "DEP" an "hängt" als eine Argumentliste, aber Sie sprechen darüber, es in die Standardausgabe zu schreiben. Willst du a) 'npm2.py' aufrufen, kommt' abhängig' von Argumenten? b) Haben 'npm2.py'' DEP' zum Standard out? oder c) habe 'npm2py' invoke' depends', schreibe 'DEP' in 'devens's Standardeingabe? –
Gute Frage, ich werde die Frage entsprechend ändern. Es ist Option a. – BH2017