ฉันกำลังพยายามเปรียบเทียบเอาต์พุตคำสั่งสองรายการ (ไม่มีไฟล์)
vimdiff "$(tail /tmp/cachain.pem)" "$(tail /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem)"
ฉันพยายามเล่นด้วยการเปลี่ยนเส้นทางไปป์vim - -c
แต่ฉันต้องหายไปบางอย่าง ใครช่วยได้บ้าง
ฉันกำลังพยายามเปรียบเทียบเอาต์พุตคำสั่งสองรายการ (ไม่มีไฟล์)
vimdiff "$(tail /tmp/cachain.pem)" "$(tail /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem)"
ฉันพยายามเล่นด้วยการเปลี่ยนเส้นทางไปป์vim - -c
แต่ฉันต้องหายไปบางอย่าง ใครช่วยได้บ้าง
คำตอบ:
คุณมีความสับสนกับ$(…)
<(…)
ที่คุณใช้ในอดีตที่ผ่านออกเป็นข้อโต้แย้งvimdiff
ที่จะ ตัวอย่างเช่นหากบรรทัดสุดท้ายของ/path/to/foo
มีbar bar bar
ดังนั้นคำสั่งดังต่อไปนี้
echo $(tail -1 /path/to/foo)
เทียบเท่ากับ
echo bar bar bar
คุณต้องใช้<(…)
แทน สิ่งนี้เรียกว่าการทดแทนกระบวนการและส่งผ่านเอาต์พุตเป็นไฟล์เทียมไปยังvimdiff
คำสั่ง ดังนั้นให้ใช้สิ่งต่อไปนี้
vimdiff <(tail /tmp/cachain.pem) <(tail /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem)
สิ่งนี้ใช้ได้ใน bash และ zsh แต่เห็นได้ชัดว่าไม่มีวิธีในการประมวลผลการแทนที่ใน tcsh
tcsh
โดยไม่ต้องสร้างไฟล์unix.stackexchange.com/questions/5111/…