นี่คือคำสั่ง envpathp ที่สามารถเรียกใช้ในผู้ให้บริการโฮสต์ฟรีของ OnWorks โดยใช้เวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS
โครงการ:
ชื่อ
envpath - การดำเนินการขั้นสูงเกี่ยวกับตัวแปรพาธ
เรื่องย่อ
เรียกใช้สคริปต์นี้ด้วยตัวเลือก "-help" สำหรับรายละเอียดการใช้งาน
DESCRIPTION
แยกวิเคราะห์บรรทัดคำสั่ง แก้ไขตัวแปรพาธที่ระบุ และดำเนินการค่าที่เหลือ
อาร์กิวเมนต์ มีสองโหมดคือ ง่าย และ สูง:
SIMPLE โหมด
โหมดง่าย ๆ นำเสนอรูปแบบทางเลือกอื่นที่ไม่ขึ้นกับแพลตฟอร์มสำหรับการระบุเส้นทาง
โดยที่ตัวคั่นพาธคือ "," และตัวแปรสภาพแวดล้อมสามารถขยายได้ด้วย @NAME@
ตัวอย่างเช่น
envpath PATH=@PATH@,/usr/ucb -- พิมพ์เส้นทาง
ต่อท้าย "/usr/ucb" ต่อ $PATH และ execs เครื่องพิมพ์ เส้นทาง. "--" เป็นตัวเลือก
คุณยังสามารถระบุการเติมหรือต่อท้ายโดยใช้ "+=" หรือ "=+" ตามลำดับ:
# วาง /usr/ucb ไว้ข้างหน้า
เส้นทาง envpath+=/usr/ucb -- printenv เส้นทาง
# วาง /usr/ucb ไว้ด้านหลัง
envpath PATH=+/usr/ucb -- พิมพ์ env PATH
โหมดธรรมดาต้องการเพียงสคริปต์นี้ ไม่จำเป็นต้องติดตั้ง Env::Path
ADVANCED โหมด
โหมดขั้นสูงโดยทั่วไปให้การเข้าถึงบรรทัดคำสั่งไปยังคุณสมบัติของ Env::Path (ดู)
ซึ่งจะต้องติดตั้ง แฟล็ก "-E" เลือกตัวแปรพาธเพื่อดำเนินการและอื่นๆ
แฟล็กระบุการดำเนินการกับมัน เช่น
envpath -E MANPATH -A / Tmp -R / usr / share / man -N -U -- ผู้ชาย ...
จะใช้ MANPATH ต่อท้าย / Tmp ให้ลบการอ้างอิงถึง "/ usr / share / man", ลบ
dirs ใด ๆ ที่ไม่มีอยู่ ("-N") และลบรายการซ้ำซ้อน ("-U") ก่อนเรียกใช้ มนุษย์.
ตัวเลือก -Whence อนุญาตให้มีรูปแบบ ดังนั้น
envpath -W "แมว*"
จะค้นหาโปรแกรมทั้งหมดบน PATH ที่ตรงกับ cat*
เคลียร์เคส วินกินส์
แรงจูงใจส่วนใหญ่สำหรับสคริปต์นี้คือเพื่อใช้กับบิลด์ ClearCase ถ้าคุณ
รู้จักหรือสนใจเกี่ยวกับ ClearCase อ่านต่อ โดยปกติ ระหว่างการสร้าง (และไม่ใช่แค่กับ
ClearCase), pathvars เช่น PATH, CLASSPATH และ LD_LIBRARY_PATH จะต้องเคร่งครัด
ควบคุม ทางเลือกหนึ่งคือการบังคับค่าคงที่ของสิ่งเหล่านี้สู่สิ่งแวดล้อมในช่วง
กระบวนการสร้าง อีกประการหนึ่งคือเพียงแค่ต้องการ/คาดหวังให้ผู้ใช้กำหนดเส้นทางของตนอย่างเหมาะสม
อย่างไรก็ตาม สิ่งเหล่านี้สามารถนำไปสู่ข้อผิดพลาดในการสร้างหรือรันไทม์ที่ละเอียดอ่อนได้ และทำให้ยากสำหรับ
ผู้ใช้รายใหม่จะได้รับความเร็วเนื่องจากสภาพแวดล้อมส่วนตัวของพวกเขาจะต้องเป็นเช่นนั้น
อีกทางเลือกหนึ่งคือใช้เฉพาะชื่อพาธแบบเต็มภายใน Makefile เท่านั้น หลีกเลี่ยงการพึ่งพา
บนเส้นทางการค้นหาเลย นี่เป็นวิธีที่ดีที่สุด แต่สามารถระงับ ClearCase . ได้
วินกินส์ ตัวอย่างเช่น สมมติว่าคุณกำลังสร้างไฟล์ ascii บางประเภทที่มีไบนารี
ไฟล์เรียกทำงานที่คุณเพิ่งสร้าง:
$(INCDIR)/foo.h: $(BINDIR)/foomaker $(BINDIR)/foomaker ...
ปัญหาคือ $(BINDIR) น่าจะมีส่วนของแพลตฟอร์มเช่น 'solaris'
หรือ 'hpux' ซึ่งทำให้ไม่สามารถขยิบตาในไฟล์ foo.h บนแพลตฟอร์มอื่นได้
แม้ว่ามันจะเป็น ascii สิ่งเดียวกันนี้อาจเกิดขึ้นได้แม้กระทั่งกับยูทิลิตี้ที่สร้างไว้ล่วงหน้าแบบมาตรฐาน
ที่อยู่ในที่ต่างๆ บนแพลตฟอร์มต่างๆ ตัวอย่างเช่น "yacc" อยู่ใน / usr / bin on
Linux และ /usr/ccs/bin บน Solaris
คุณสามารถแก้ไขเส้นทางได้ทันที:
$(INCDIR)/foo.h: $(BINDIR)/foomaker PATH=$(BINDIR)$(SEP)$$PATH foomaker ...
แต่สิ่งนี้ก็ประสบปัญหาเดียวกัน: เนื่องจาก $(BINDIR) และ $PATH ถูกขยายตามตัวอักษร
ภายในสคริปต์บิลด์พวกเขาจะระงับวินกินส์ นี่คือวิธีแก้ปัญหาโดยใช้ เอ็นวีพาธ:
$(INCDIR)/foo.h: $(BINDIR)/foomaker envpath PATH=@BINDIR@,@PATH@ foomaker ...
สิ่งนี้ซ่อนการประเมินของ BINDIR และ PATH เช่นนั้น เคลียร์เมค ไม่เคยเห็นอะไรเลยนอกจาก
ตัวอักษรจึงล้างฟิลด์สำหรับวินกินส์ แน่นอน เอ็นวีพาธ สามารถทำได้
มากกว่านี้ แต่เป็นเหตุผลเดิมที่เขียน
ใช้ envpathp ออนไลน์โดยใช้บริการ onworks.net