başka girişine komutu yönlendir gvimdiff nasıl üzere boru dosyası, ancak başka bir dosyayı kabul olmaz: ... piton kısmına alınıyorPython bu çoğaltmak istiyoruz Python
$ hg cat file.txt | gvimdiff file.txt -
Too many edit arguments: "-"
# hgdiff.py
import subprocess
import sys
file = sys.argv[1]
subprocess.call(["gvimdiff", "<(hg cat %s)" % file, file])
Alt işlem çağrıldığında, <(hg cat file)
yalnızca gvimdiff
dosya adına bir dosya adı olarak geçer.
Yani, bir komutu bash olarak yeniden yönlendirmenin herhangi bir yolu var mı? Basitlik'ın sadece kedi, bir dosya için ve diff için yönlendirme: aslında grok istiyorsanız fonksiyonların popen seti, ayrıca
import commands
status, output = commands.getstatusoutput("gvimdiff <(hg cat file.txt) file.txt")
yok:
diff <(cat file.txt) file.txt
Güzel çözüm. Ayrıca ilgisi de bash: > python -c "import sys; print (sys.argv)" <(echo hello) function_proj.cc ['-c', '/ dev/fd/63', ' function_proj.cc '] – gatoatigrado
@gatoatigrado - en azından sistemlerimde, '/ dev/fd'/proc/self/fd'ye bir sembolik bağlantı kurabilir –