ນີ້ແມ່ນຄໍາສັ່ງ envpathp ທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນຫຼາຍບ່ອນເຮັດວຽກອອນໄລນ໌ຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator
ໂຄງການ:
NAME
envpath - ການປະຕິບັດຂັ້ນສູງກ່ຽວກັບຕົວແປເສັ້ນທາງ
ສະຫຼຸບສັງລວມ
ແລ່ນສະຄຣິບນີ້ດ້ວຍຕົວເລືອກ "-help" ສໍາລັບລາຍລະອຽດການນໍາໃຊ້.
ລາຍລະອຽດ
parses ເສັ້ນຄໍາສັ່ງ, ແກ້ໄຂຕົວແປເສັ້ນທາງທີ່ລະບຸໄວ້, ແລະ exec ສ່ວນທີ່ເຫຼືອ
ການໂຕ້ຖຽງ. ມີສອງຮູບແບບ, ງ່າຍດາຍ ແລະ ກ້າວຫນ້າທາງດ້ານ:
SIMPLE MODE
ຮູບແບບງ່າຍດາຍນໍາສະເຫນີທາງເລືອກ, syntax ເອກະລາດເວທີສໍາລັບການກໍານົດເສັ້ນທາງ
ໃນນັ້ນຕົວແຍກເສັ້ນທາງແມ່ນ "," ແລະຕົວແປສະພາບແວດລ້ອມສາມາດຂະຫຍາຍໄດ້ດ້ວຍ @NAME@.
ຍົກຕົວຢ່າງ
envpath PATH=@PATH@,/usr/ucb -- printenv PATH
ຕື່ມ "/usr/ucb" ໃສ່ $PATH ແລະ execs ສິ່ງພິມ PATH. "--" ແມ່ນທາງເລືອກ.
ນອກນັ້ນທ່ານຍັງສາມາດກໍານົດການສືບຕໍ່ຫຼືຕໍ່ທ້າຍໂດຍໃຊ້ "+=" ຫຼື "=+" ຕາມລໍາດັບ:
# ວາງ /usr/ucb ຢູ່ທາງຫນ້າ
envpath PATH+=/usr/ucb -- printenv PATH
# ສະຖານທີ່ /usr/ucb ຢູ່ດ້ານຫຼັງ
envpath PATH=+/usr/ucb -- printenv PATH
ຮູບແບບງ່າຍດາຍຮຽກຮ້ອງໃຫ້ມີພຽງແຕ່ສະຄິບນີ້; ມັນບໍ່ຮຽກຮ້ອງໃຫ້ມີ Env::ເສັ້ນທາງທີ່ຈະຕິດຕັ້ງ.
ADVANCED MODE
ຮູບແບບຂັ້ນສູງໂດຍພື້ນຖານແລ້ວໃຫ້ການເຂົ້າເຖິງເສັ້ນຄໍາສັ່ງຕໍ່ກັບລັກສະນະຂອງ Env::Path (ເບິ່ງ),
ເຊິ່ງຕ້ອງໄດ້ຮັບການຕິດຕັ້ງ. ທຸງ "-E" ເລືອກຕົວແປເສັ້ນທາງເພື່ອດໍາເນີນການເທິງແລະອື່ນໆ
ທຸງລະບຸການດໍາເນີນການກ່ຽວກັບມັນ. ຕົວຢ່າງ
envpath -E MANPATH -A / tmp -R / usr / share / man -N -U - ຜູ້ຊາຍ ...
ຈະເອົາ MANPATH, ຕໍ່ທ້າຍ / tmp ກັບມັນ, ເອົາການອ້າງອີງໃດໆກ່ຽວກັບ "/ usr / share / man", ເອົາອອກ
dirs ໃດທີ່ບໍ່ມີ ("-N") ແລະລົບການອອກລາຍການ redundant ("-U") ກ່ອນທີ່ຈະແລ່ນ ຜູ້ຊາຍ.
ທາງເລືອກ -Whence ອະນຸຍາດໃຫ້ຮູບແບບ. ດັ່ງນັ້ນ
envpath -W "cat*"
ຈະຊອກຫາທຸກໂຄງການໃນ PATH ທີ່ກົງກັບ cat*.
ອະນາໄມ ວິນກິນ
ສ່ວນໃຫຍ່ຂອງແຮງຈູງໃຈສໍາລັບ script ນີ້ແມ່ນສໍາລັບການນໍາໃຊ້ກັບ ClearCase builds; ຖ້າເຈົ້າ
ຮູ້ຫຼືສົນໃຈກ່ຽວກັບ ClearCase ອ່ານຕໍ່. ໂດຍປົກກະຕິ, ໃນລະຫວ່າງການກໍ່ສ້າງ (ແລະບໍ່ພຽງແຕ່ກັບ
ClearCase), pathvars ເຊັ່ນ PATH, CLASSPATH, ແລະ LD_LIBRARY_PATH ຕ້ອງເຂັ້ມງວດ.
ຄວບຄຸມ. ທາງເລືອກຫນຶ່ງແມ່ນການບັງຄັບໃຫ້ຄຸນຄ່າສະຖິຕິຂອງເຫຼົ່ານີ້ເຂົ້າໄປໃນສະພາບແວດລ້ອມໃນລະຫວ່າງການ
ຂະບວນການກໍ່ສ້າງ, ອີກອັນຫນຶ່ງແມ່ນພຽງແຕ່ຕ້ອງການ / ຄາດຫວັງໃຫ້ຜູ້ໃຊ້ກໍານົດເສັ້ນທາງຂອງພວກເຂົາຢ່າງເຫມາະສົມ.
ແຕ່ລະອັນເຫຼົ່ານີ້ສາມາດນໍາໄປສູ່ຄວາມຜິດພາດໃນການສ້າງ subtle ຫຼື runtime, ຢ່າງໃດກໍຕາມ, ແລະເຮັດໃຫ້ມັນຍາກສໍາລັບ
ຜູ້ໃຊ້ໃຫມ່ທີ່ຈະໄດ້ຮັບເຖິງຄວາມໄວນັບຕັ້ງແຕ່ສະພາບແວດລ້ອມສ່ວນບຸກຄົນຂອງເຂົາເຈົ້າຕ້ອງເປັນດັ່ງນັ້ນ.
ທາງເລືອກທົ່ວໄປອີກອັນຫນຶ່ງແມ່ນໃຊ້ພຽງແຕ່ຊື່ເສັ້ນທາງເຕັມພາຍໃນ Makefile, ຫຼີກເວັ້ນການເອື່ອຍອີງ
ຢູ່ໃນເສັ້ນທາງຄົ້ນຫາທັງຫມົດ. ນີ້ມັກຈະເປັນວິທີທີ່ດີທີ່ສຸດທີ່ຈະໄປແຕ່ສາມາດສະກັດກັ້ນ ClearCase
ກະພິບ. ຕົວຢ່າງ, ໃຫ້ເວົ້າວ່າທ່ານກໍາລັງສ້າງໄຟລ໌ ascii ຂອງບາງປະເພດດ້ວຍຖານສອງ
ການປະຕິບັດທີ່ທ່ານຫາກໍ່ສ້າງ:
$(INCDIR)/foo.h: $(BINDIR)/foomaker $(BINDIR)/foomaker ...
ບັນຫານີ້ແມ່ນວ່າ $(BINDIR) ອາດຈະປະກອບດ້ວຍສ່ວນຂອງເວທີເຊັ່ນ 'solaris'.
ຫຼື 'hpux', ເຊິ່ງເຮັດໃຫ້ມັນເປັນໄປບໍ່ໄດ້ທີ່ຈະກະພິບໃນໄຟລ໌ foo.h ໃນເວທີອື່ນໆເຖິງແມ່ນວ່າ
ເຖິງແມ່ນວ່າມັນເປັນ ascii. ສິ່ງດຽວກັນນີ້ສາມາດເກີດຂຶ້ນໄດ້ເຖິງແມ່ນວ່າມີຜົນປະໂຫຍດມາດຕະຖານທີ່ສ້າງຂຶ້ນກ່ອນ
ທີ່ຢູ່ໃນສະຖານທີ່ທີ່ແຕກຕ່າງກັນໃນເວທີທີ່ແຕກຕ່າງກັນ; "yacc", ສໍາລັບການຍົກຕົວຢ່າງ, ແມ່ນຢູ່ໃນ / usr / ຖັງ on
Linux ແລະ /usr/ccs/bin ໃນ Solaris.
ທ່ານສາມາດປັບປຸງແກ້ໄຂເສັ້ນທາງໃນການບິນ:
$(INCDIR)/foo.h: $(BINDIR)/foomaker PATH=$(BINDIR)$(SEP)$$PATH foomaker ...
ແຕ່ນີ້ທົນທຸກຈາກບັນຫາດຽວກັນ: ນັບຕັ້ງແຕ່ $ (BINDIR) ແລະ $PATH ຖືກຂະຫຍາຍອອກຕາມຕົວຫນັງສື
ພາຍໃນ build script ພວກເຂົາເຈົ້າຈະສະກັດກັ້ນ winkins. ນີ້ແມ່ນການແກ້ໄຂໂດຍໃຊ້ envpath:
$(INCDIR)/foo.h: $(BINDIR)/foomaker envpath PATH=@BINDIR@,@PATH@ foomaker ...
ອັນນີ້ເຊື່ອງການປະເມີນຂອງ BINDIR ແລະ PATH ດັ່ງກ່າວ ລ້າງ ບໍ່ເຄີຍເຫັນຫຍັງແຕ່
ການຮູ້ຫນັງສື, ດັ່ງນັ້ນຈຶ່ງ clearing ພາກສະຫນາມສໍາລັບ winkins. ແນ່ນອນ envpath ແມ່ນສາມາດເຮັດໄດ້
ຫຼາຍກວ່ານີ້, ແຕ່ວ່າມັນແມ່ນເຫດຜົນຕົ້ນສະບັບທີ່ມັນຖືກຂຽນໄວ້.
ໃຊ້ envpathp ອອນໄລນ໌ໂດຍໃຊ້ບໍລິການ onworks.net