มีสองสถานการณ์:
- คุณกำลังใช้งาน Linux
- คุณใช้ Mac Os X
สำหรับทั้งคุณต้องการแหล่งที่มา~/.bashrc
ในโปรไฟล์ของคุณที่ถูกโหลดหรือแหล่งที่มาเมื่อเชลล์สำหรับเทอร์มินัลของคุณเริ่มต้น
LINUX
ใน Linux นั้น~/.profile
จะเป็นซอร์สในเชลล์โดยอัตโนมัติเมื่อมันเริ่มทำงาน ดังนั้นถ้าคุณไปที่เทอร์มินัลและประเภทของcd ~; ls -A
คุณคุณจะเห็นไฟล์และไดเรกทอรีทั้งหมดในโฮมไดเร็กตอรี่ของคุณ ( /home/usrname/
) .profile
คุณควรจะเห็นไฟล์ที่เรียกว่า นี่คือไฟล์ที่ "แหล่ง" โดยอัตโนมัติเมื่อคุณเริ่มต้นเทอร์มินัล
ถ้าคุณต้องการที่จะเพิ่มชื่อแทนและฟังก์ชั่นเพื่อ~/.bashrc
(ซึ่งเป็นสิ่งที่ฉันทำ) แล้วคุณควร (ภายในของการ~/.profile
เพิ่มคำสั่ง if ถ้าตรวจสอบว่า~/.bashrc
เป็นไฟล์ที่ไม่ว่างเปล่าแล้วแหล่งที่มามัน
เพื่อตรวจสอบว่าคุณอยู่แล้วนี้ไม่ใส่~/.profile
nano ~/.profile
สิ่งนี้จะเปิดขึ้นในโปรแกรมแก้ไขข้อความ (คุณสามารถใช้ gedit ถ้าคุณรู้ว่าคุณมีมันหรือแม้กระทั่งเป็นกลุ่มถ้าคุณรู้วิธีใช้งาน) คุณอาจได้รับไฟล์ข้อความที่ว่างเปล่า (คุณไม่ควร) แต่ถ้าคุณทำต่อไป หากคุณไม่เห็นบรรทัดใด ๆที่ระบุsource ~/.bashrc
ให้ป้อนบรรทัดต่อไปนี้ที่ใดที่หนึ่ง (วางไว้ในตำแหน่งที่เหมาะสมเช่นที่ส่วนท้ายหรือจุดเริ่มต้นและไม่อยู่ตรงกลางของคำสั่ง if):
if [ -s ~/.bashrc ]; then
source ~/.bashrc;
fi
ไฟล์นี้จะตรวจสอบว่า~/.bashrc
เป็นไฟล์ที่ไม่ว่างเปล่าหรือไม่และมีไฟล์[ -s ~/.bashrc ]
ดังกล่าวหรือไม่ ค่อนข้างง่าย ตอนนี้คุณสามารถเพิ่มถูกต้องใด ๆ นามแฝงฟังก์ชั่นตัวแปร ~/.bashrc
ฯลฯ
MAC OS X
~/.bash_profile
โดยค่าเริ่มต้นแหล่ง Max OS X เพื่อให้สามารถเพิ่มสิ่งต่าง ๆ ลงไป~/.bashrc
(ซึ่งก็คืออีกครั้งสิ่งที่ฉันทำใน OS X เช่นกัน) จากนั้นคุณทำตามขั้นตอนเดียวกับ linux ใน terminal cd ~; nano .bash_profile
ใส่ ตรวจสอบบรรทัดที่ระบุว่าsource ~/.bashrc
และหากยังไม่มีให้เพิ่มคำสั่ง if ด้านบน ( if [ -s ~/.bashrc ]; then source ~/.bashrc; fi
)
หมายเหตุ
เมื่อเขียนคำสั่ง if ให้แน่ใจว่าได้เว้นช่องว่างระหว่างทุกสิ่งโดยทั่วไป (ตัวอย่างเช่นif [ -s ~/.bashrc]; then echo "found"; fi
ไม่ทำงานเพราะไม่มีที่ว่างเลย~/.bashrc
และ]
- ล่ามจะคิดว่านี่เป็นคำเดียว)
ถ้าคุณต้องการที่จะคิดออกว่าเพื่อตรวจสอบสิ่งที่อยู่ในงบถ้าดีขึ้นไปยังสถานีและป้อนman \[
; สิ่งนี้จะทำให้คุณหมดคำสั่ง if ตัวอย่างเช่นif [ -f /path/to/file ]; then echo "it's a file"; else echo "not a file"; fi
ตรวจสอบว่า/path/to/file
เป็นไฟล์หรือไม่และพิมพ์ออกมาเป็น stdout ตามนั้นหรือไม่ ฉันมักจะอ้างถึงสิ่งนี้เช่นกันเพื่อให้ง่ายต่อการมองเห็นและอ้างอิงอย่างรวดเร็ว: 7.2 ผู้ประกอบการทดสอบไฟล์
ฉันหวังว่านี่จะช่วยได้. ฉันจำได้ว่าฉันสับสนเมื่อฉันเริ่มต้นทุกสิ่งนี้ (ซึ่งไม่นานมานี้); โชคดีกับความพยายามของ UNIX ในอนาคตของคุณ!