เมื่อคุณล็อกอินไฟล์~/.profileจะถูกอ่านโดยเชลล์ล็อกอิน (ksh สำหรับคุณ) คุณสามารถสั่งให้เชลล์ล็อกอินนั้นแทนที่ตัวเองด้วยการทุบตี คุณควรใช้ความระมัดระวัง:
- แทนที่เชลล์ล็อกอินเท่านั้นหากเป็นแบบโต้ตอบ สิ่งนี้มีความสำคัญ: มิฉะนั้นการเข้าสู่ระบบในโหมดกราฟิกอาจไม่ทำงาน (ขึ้นอยู่กับระบบ: บางระบบ แต่ไม่ทุกระบบอ่าน
~/.profileเมื่อเข้าสู่ระบบผ่าน xdm หรือคล้ายกัน) และสำนวนต่าง ๆ เช่นssh foo '. ~/.profile; mycommand'จะล้มเหลว
- ตรวจสอบว่ามีการทุบตีเพื่อให้คุณยังสามารถเข้าสู่ระบบหากปฏิบัติการไม่ได้มีด้วยเหตุผลบางอย่าง
คุณมีตัวเลือกว่าจะรัน bash เป็นเชลล์ล็อกอินหรือไม่ ข้อแตกต่างที่สำคัญในการทำให้เปลือกเข้าสู่ระบบก็คือว่ามันจะโหลดหรือ~/.bash_profile ~/.profileดังนั้นหากคุณรัน bash เป็น login shell โปรดระมัดระวังที่จะมี a ~/.bash_profileหรือระวังไม่ให้ทำการ bash ซ้ำ~/.profileๆ ไม่มีข้อได้เปรียบที่แท้จริงของการ~/.profileถูกดำเนินการโดย bash แทนที่จะเป็น ksh ดังนั้นฉันขอแนะนำไม่ให้ทำ
นอกจากนี้ยังตั้งค่าSHELLตัวแปรสภาพแวดล้อมเป็น bash ดังนั้นโปรแกรมเช่นเทอร์มินัลอีมูเลเตอร์จะเรียกใช้เชลล์นั้น
นี่คือรหัสเพื่อเปลี่ยนเป็นทุบตี ~/.profileวางไว้ในตอนท้ายของ
case $- in
*i*)
# Interactive session. Try switching to bash.
if [ -z "$BASH" ]; then # do nothing if running under bash already
bash=$(command -v bash)
if [ -x "$bash" ]; then
export SHELL="$bash"
exec "$bash"
fi
fi
esac