Mac Gnu-Screen ไม่โหลดค่าเริ่มต้น. bash_profile


15

ฉันมีการตั้งค่าแบบกำหนดเองมากมายใน bash_profile ของฉัน เมื่อฉันใช้ GNU source /Users/disappearedng/.bash_profileจอฉันตระหนักว่าหน้าจอของฉันไม่ได้ดำเนินการ ฉันพยายามใส่ซอร์ส /Users/disappearedng/.bash_profile ในไฟล์. screenrc ของฉัน แต่จากนั้นก็บ่นว่า alias ไม่ใช่คำสั่ง ... (ฉันเดาว่า screenrc ต้องการคำสั่งเฉพาะ screenrc)

ฉันได้ลองเปลี่ยน. bash_profile เป็น. profile หรือ. bash_rc ไม่มีงานนั้น

ความช่วยเหลือใด ๆ

คำตอบ:


17

ไฟล์. bash_profile (และไฟล์. profile เช่นกัน) ถูกโหลดสำหรับเชลล์การเข้าสู่ระบบเชลล์ที่ไม่ใช่การเข้าสู่ระบบใช้. bashrc (ไม่มี _ สัญลักษณ์) มีบรรทัดในไฟล์. screenrc ที่บอกหน้าจอว่าเชลล์จะวางไข่เมื่อเริ่มต้นหน้าต่างหน้าจอ (เมื่อไม่ได้เรียกใช้โปรแกรมเฉพาะเป็นแอปพลิเคชันหน้าต่าง) ในไฟล์. screenrc ของฉันนี่เป็นเช่นนี้ (รวมถึงความคิดเห็นด้วย):

# shell:  Default process started in screen's windows.
# Makes it possible to use a different shell inside screen
# than is set as the default login shell.
# If begins with a '-' character, the shell will be started as a login shell.
  shell -$SHELL

ตรวจสอบไฟล์. screenrc ของคุณและตรวจสอบว่าบรรทัดเชลล์มีเส้นประอยู่ด้านหน้า โดยการมีสัญลักษณ์เส้นประนั้นและบังคับให้เชลล์ล็อกอินคุณจะได้รับ. bash_profile ที่มา ตัวแปร $ SHELL ใน. screenrc ของฉันกำลังใช้ค่าเชลล์ตามที่เชลล์จัดทำขึ้นเพื่อเปิดหน้าจอ

ในกรณีที่คุณสงสัยความแตกต่างที่ใหญ่ที่สุดที่ฉันสามารถค้นพบระหว่างล็อกอินกับเชลล์ที่ไม่ใช่การล็อกอินคือปกติแล้วเชลล์ที่ไม่ใช่การล็อกอินจะเป็นสิ่งที่เรียกใช้สำหรับการเรียกใช้สคริปต์


อ้าขอบคุณ! นอกจากนี้ยังมีวิธีทำให้ตัวเองรู้ได้อย่างง่ายดายว่าหน้าต่างปัจจุบันนี้อยู่ในหน้าจอ gnu หรือไม่?
หายไป

ตัวเลือก hardstatus ในไฟล์. screenrc สามารถใช้เพื่อช่วยให้แน่ใจว่าคุณสามารถระบุได้ว่าคุณอยู่ในหน้าจอ (พร้อมกับการตั้งค่าที่ดีอื่น ๆ ที่ฉันเข้าใจ) หน้าจอหน้าคนควรมีรายละเอียดเกี่ยวกับวิธีการกำหนดค่า (ไม่ทราบที่อยู่ด้านบนของหัวของฉัน)
เมทริกซ์โมล

3

การจัดหา.bash_profileเป็นสิ่งที่แตกต่างที่แอปเทอร์มินัล Mac ทำที่แอปเทอร์มินัลส่วนใหญ่ไม่ได้ทำ ~/.bashrcอย่างไรก็ตามหน้าจอจะอ่านทุกครั้งที่คุณวางไข่กระสุนใหม่

หากคุณเปลี่ยนชื่อของคุณ~/.bash_profileเป็น~/.bashrc(โดยไม่มีการขีดเส้นใต้ระหว่าง bash และ rc ดังเช่นในคำถามของคุณ) จากนั้นจะมีที่มา

อย่างไรก็ตามกลยุทธ์ที่ฉันชอบคือการตั้งค่าทั้งหมดของฉันลงในbashrcและจากนั้นให้ทำbash_profileดังนี้:

[ -f .bashrc ] && . .bashrc

-1

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

$ ln -s ~/.bash_profile ~/.bashrc

การเปลี่ยนแปลงใด ๆ ที่เกิดขึ้นกับหนึ่งในไฟล์จะถูกเก็บไว้ในแต่ยังสามารถเข้าถึงได้โดย.bash_profile.bashrc

ข้อเสียเปรียบอย่างเดียวคือคุณไม่สามารถเพิ่มการตั้งค่าให้กับหนึ่งในไฟล์ปรับแต่ง


คุณช่วยขยายคำตอบนี้ได้ไหม? คุณไม่ได้อธิบายอย่างแท้จริงว่าจะแก้ปัญหาอย่างไร
bwDraco

-1

Linux login shells ซอร์สโค้ดที่ไม่ใช่การล็อกอินโดยเพิ่มบรรทัดต่อไปนี้ในกรณีของไฟล์ผู้ใช้:

[[ -f ~/.bashrc ]] && . ~/.bashrc

โซลูชันนี้ได้รับการโพสต์แล้ว
slhck

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