ฉันกำลังพยายามเปรียบเทียบเอาต์พุตคำสั่งสองรายการ (ไม่มีไฟล์)
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/…