เส้นประ (-) ที่หน้าทุบตี


14

ถ้าผมตรวจสอบเปลือกทุบตีฉันใน OS X (10.6.4) ขั้วเช่นโดยการพิมพ์มีเส้นประในด้านหน้าของเปลือกของฉันเช่นนี้echo $0 -bashเส้นประนี้หมายถึงอะไร

คำตอบ:


14

หมายความว่าbashถูกเรียกใช้เป็นเชลล์ล็อกอิน


man bash พูดว่า:

เปลือกเข้าสู่ระบบเป็นหนึ่งที่มีอักขระตัวแรกของศูนย์อาร์กิวเมนต์เป็น-หรือหนึ่งเริ่มต้นด้วย--loginตัวเลือก

เมื่อ bash ถูกเรียกใช้เป็นเชลล์ล็อกอินแบบโต้ตอบหรือเป็นเชลล์ที่ไม่มีการโต้ตอบพร้อมกับ--loginตัวเลือกมันจะอ่านและเรียกใช้คำสั่งจากไฟล์/etc/profileก่อนหากไฟล์นั้นมีอยู่ หลังจากที่ได้อ่านแฟ้มที่จะมองหา~/.bash_profile, ~/.bash_loginและ~/.profileในลำดับที่และอ่านและรันคำสั่งจากคนแรกที่มีอยู่และสามารถอ่านได้ --noprofileตัวเลือกที่อาจจะนำมาใช้เมื่อเปลือกจะเริ่มต้นในการยับยั้งการทำงานนี้

เมื่อล็อกอินเชลล์ออก bash จะอ่านและดำเนินการคำสั่งจากไฟล์~/.bash_logoutหากมีอยู่


คุณจะพบผลลัพธ์login -pfของคุณpsซึ่งเริ่มเชลล์การเข้าสู่ระบบตามค่าเริ่มต้น

ลองวิ่งlogin -pfและlogin -pflดูความแตกต่าง man loginอธิบายความแตกต่าง:

-lบอกโปรแกรมดำเนินการโดยการเข้าสู่ระบบที่ว่านี้ไม่ได้เป็นเซสชั่นเข้าสู่ระบบ (โดยการประชุมครั้งที่เข้าสู่ระบบจะส่งสัญญาณไปยังโปรแกรมที่มียัติภังค์เป็นตัวอักษรตัวแรกของargv[0]; นี้ปิดใช้งานตัวเลือกนั้น) และป้องกันไม่ให้มันจากchdir(2)ไอเอ็นจีไปยังไดเรกทอรีบ้านของผู้ใช้ . ค่าเริ่มต้นคือการเพิ่มยัติภังค์ (นี่คือเซสชั่นการเข้าสู่ระบบ)


คำตอบที่ดีขอบคุณสำหรับคำอธิบายและการmanอ้างอิง
marshall.ward

1
ฉันใช้อูบุนตูและฉันเห็นพฤติกรรมที่แตกต่างกันของecho $0: ถ้าฉันพิมพ์echo $0ในเทอร์มินัลที่เรียกใช้โดยctrl + alt + f1ผลลัพธ์คือ-bash; แต่ถ้าฉันพิมพ์ใน termianl เรียกโดยctrl + alt + tผลคือbash(ไม่มีเส้นประนำ) คุณช่วยอธิบายได้ไหม
Frozen Flame

@ Frozen-flame One เป็นเชลล์สำหรับล็อกอินส่วนอีกอันไม่ใช่ โปรดทราบว่าเทอร์มินัล OS X และ Linux มีพฤติกรรมที่แตกต่างกันในเรื่องนั้น
Daniel Beck

@DanielBeck นั่นไม่ใช่ข้อพิสูจน์ว่าอันอื่นไม่ใช่เปลือกเข้าสู่ระบบ เมื่อทุบตีเปิดตัวด้วย--loginอาร์กิวเมนต์มันจะไม่เปลี่ยนargv[0]แต่ทำหน้าที่เป็นเปลือกเข้าสู่ระบบ
Ruslan

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