เป็นไปได้หรือไม่ที่จะเพิ่มความสามารถในการเรียกใช้งานได้ครั้งเดียวแทนที่จะเพิ่มทั้งไดเรกทอรีไปยัง $ PATH ของฉัน


9

ฉันมี XAMPP ติดตั้งใน OSX และโดยค่าเริ่มต้นจะเป็นการเพิ่มเส้นทางไปยังbinไดเรกทอรีของตัวเอง(เต็มไปด้วยยูทิลิตี้ต่าง ๆ ) ไปยัง$PATHตัวแปรของฉัน:

# Add path to XAMPP PHP version
export XAMPP_PHP=/Applications/XAMPP/xamppfiles/bin
export PATH="$XAMPP_PHP:$PATH"

แต่โชคไม่ดีที่หนึ่งของสาธารณูปโภคของมันจะถูกเรียกว่าHEADซึ่งต้องขอบคุณ OSX ของระบบแฟ้มกรณีตายชนกับยูนิกซ์headคำสั่ง XAMPP HEADไม่มีความเกี่ยวข้องอย่างสมบูรณ์กับhead(ฉันคิดว่ามันออกคำขอ HTTP HEAD)

แน่นอนฉันต้องการใช้ทั้งสองheadและ XAMPP ดังนั้นฉันเพียงแค่เปลี่ยนลำดับตัวแปรเส้นทาง:

export PATH="$PATH:$XAMPP_PHP"

สิ่งนี้ทำให้ฉันใช้headแต่ตอนนี้มีการชนกันระหว่าง PHP เวอร์ชัน XAMPP (เช่น 5.5) และเวอร์ชัน PHP ที่ติดตั้งไว้ล่วงหน้าซึ่งมาพร้อมกับ OSX (5.3) เนื่องจากเส้นทางที่ 5.3 มาก่อนมันจะมีความสำคัญกว่า

แผนของฉันสำหรับโซลูชันแฮ็คแฮ็กคือการเพิ่มพา ธ ไฟล์แบบเต็ม + ชื่อแค่เวอร์ชัน XAMPP ของ PHPจากนั้นต่อท้ายส่วนที่เหลือหลังจาก$PATH:

export PATH="/Applications/XAMPP/xamppfiles/bin/php:$PATH:$XAMPP_PHP"

ดูเหมือนจะใช้งานไม่ได้ เมื่อฉันรีสตาร์ท bash และตรวจสอบphp -vมันยังคงอยู่ใน PHP 5.3 - เวอร์ชันในตัว เป็นไปได้หรือไม่ที่จะเพิ่มเส้นทางไฟล์ที่เฉพาะเจาะจงลงไป$PATH?


4
ไม่$PATHอาจมีเพียงไดเรกทอรี คุณก็สามารถ symlink $PATHปฏิบัติการที่คุณต้องการลงในไดเรกทอรีที่มีอยู่ในของคุณ
larsks

คำตอบ:


8

สมมติว่าecho "$PATH"แสดง/usr/local/binในเส้นทางของคุณและระบุว่านี่เป็นแล็ปท็อปส่วนตัวของคุณ:

สร้าง symlink โดย/usr/local/binชี้ไปที่สิ่งที่คุณต้องการ

ln -s /Applications/XAMPP/xamppfiles/bin/php /usr/local/bin/php

ถ้าเป็นคอมพิวเตอร์ที่ใช้ร่วมกันและคุณไม่ต้องการที่จะส่งผลกระทบต่อผู้ใช้อื่น ๆ ~/.bash_profileผมขอแนะนำให้ตั้งค่าที่กำหนดเองเพื่อขยายเส้นทางของคุณใน ฉันมีหนึ่งตัวเอง:

$ grep PATH ~/.bash_profile 
export PATH="$PATH:$HOME/.bin"

จากนั้นฉันสามารถใส่ symlink แบบกำหนดเองสคริปต์และอื่น ๆ ลงใน~/.binและพวกเขาจะทำงานตามที่คาดไว้

ฉันใส่.จุดเริ่มต้นของ.binดังนั้นฉันไม่ต้องดูไดเรกทอรีเมื่อเรียกดูใน Finder

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.