ตัวอย่างนี้สคริปต์การเริ่มต้นระบบ bash ทำอะไร [ปิด]


-1

ฉันกำลังพยายามตั้งค่า GNU Octave บนคอมพิวเตอร์ของฉัน (Mac OS X 10.7.4) ฉันเป็นมือใหม่ในการใช้ Terminal และฉันต้องการความช่วยเหลือในการทำความเข้าใจว่าสคริปต์ต่อไปนี้ทำอะไรได้บ้าง:

if [ -f ~/.bashrc ];then<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;. ~/.bashrc<br>
fi<br>
PATH=$PATH:/usr/local/bin<br>
BASH_ENV=~/.bashrc<br>
export BASH_ENV PATH<br>
export GNUTERM=aqua<br>
alias octave="/Applications/Octave.app/Contents/Resources/bin/octave"<br>
alias gnuplot="/Applications/Gnuplot.app/Contents/Resources/bin/gnuplot"<br>

(นำมาจากที่นี่: http://wikibox.stanford.edu/me112/index.php/Main/OctaveMatlabNotes )

ดังนั้นสคริปต์นี้เริ่มต้นด้วยคำสั่งเงื่อนไขง่าย ๆ ฉันไม่เข้าใจการแสดงออกตามเงื่อนไข - คืออะไรและ -bashrc? คำสั่งอะไร ~ / .bashrc จริง ๆ แล้ว?

จากนั้นตัวแปร 2 ตัวจะถูกกำหนดเส้นทางและ BASH_ENV ทำไมพวกเขาส่งออก? ทำไม GNUTERM = aqua ถึงถูกส่งออกแม้ว่าจะไม่ได้กำหนดก็ตาม

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

ขอบคุณ


1
ลองman bashดู กลับมาพร้อมคำถามเฉพาะเมื่อคุณพยายามเข้าใจ
Daniel Beck

@DanielBeck ฉันยอมรับว่าเขาควรอ่านเอกสารทุบตี แต่การส่งเทอร์มินัลมือใหม่ไปที่หน้าเว็บของมนุษย์ในเทอร์มินัลนั้นถูกทรมาน เขาต้องเรียนรู้วิธีนำทางเพจเจอร์เริ่มต้นของเขา (มาก / น้อย) ก่อนซึ่งกลายเป็นปัญหาไก่และไข่ ดีกว่าที่จะส่งเขาไปยังสำเนาบนเว็บก่อน
Spiff

@Speed ​​เอาล่ะพิมพ์man bashลงในช่องค้นหาของเว็บและรู้สึกว่าโชคดีทำงานได้ดีเช่นกัน หรือดาวน์โหลดแอพ man man สำหรับ iOSและเรียกดูบนโทรศัพท์
Daniel Beck

คำตอบ:


2

[ -f ] ทดสอบว่ามีไฟล์อยู่หรือไม่

เครื่องหมายตัวหนอน~เป็นชวเลขเชลล์สำหรับไดเรกทอรีบ้าน / ผู้ใช้ของคุณ ไฟล์ส่วนบุคคลของคุณจะถูกเก็บไว้ที่นั่น ~/.bashrcถ้ามีอยู่จะเป็นbashไฟล์เริ่มต้นอีกไฟล์หนึ่งในโฮมไดเร็กตอรี่ของคุณซึ่งมักจะถูกเรียกใช้เมื่อคุณเริ่มbashการโต้ตอบ (นั่นคือเมื่อคุณไม่ได้เรียกbashให้เรียกใช้bashไฟล์สคริปต์ที่มีอยู่แล้ว) ไฟล์ตัวอย่างที่คุณกำลังดูน่าจะหมายถึง a .profileซึ่งเป็นเชลล์สคริปต์เริ่มต้นระบบอีกตัวหนึ่งซึ่งโดยทั่วไปจะเรียกใช้เมื่อคุณเข้าสู่ระบบครั้งแรกเท่านั้น หากคุณมีคำสั่งที่คุณต้องการให้รันเมื่อคุณเข้าสู่ระบบ~/.profileเท่านั้น หากคุณมีคำสั่งที่ตั้งค่าสภาพแวดล้อมเชลล์แบบโต้ตอบ (เช่นนามแฝงที่ทำให้คำสั่งง่ายขึ้นในการเรียกใช้) จากนั้นคุณวางคำสั่งเหล่านั้นไว้ใน.bashrc. เนื่องจากเชลล์ล็อกอินเป็นเชลล์แบบโต้ตอบคุณจึงต้องการ.profileโหลด ("ซอร์ส") ของคุณ.bashrcด้วย

PATHเมื่อเปลือกของคุณจะมองหาคำสั่งที่จะเรียกใช้ก็ให้คำปรึกษาตัวแปรสภาพแวดล้อม บรรทัดนี้ส่งออกเพื่อให้คำสั่งอื่น ๆ ที่คุณเรียกใช้จากเชลล์รู้ว่าจะหาคำสั่งอื่นได้ที่ไหน นอกจากนี้ยังเพิ่มไดเรกทอรี/usr/local/binลงในPATHเชลล์และโปรแกรมที่มันรันเพื่อค้นหาคำสั่งที่นั่น

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

GNUTERMaquaถูกกำหนดให้เป็นสตริง มันถูกกำหนดและส่งออกในเวลาเดียวกัน เนื่องจากคุณใช้งานบน Mac ซึ่งอาจไม่ได้ติดตั้ง XWindows (X11) นี่เป็นการบอกสภาพแวดล้อม GNUTerm / GNUPlot / GNUO ของคุณว่าเครื่องมือใดที่จะเรียกใช้เพื่อวาดแปลงของคุณลงบนหน้าจอ อาจaquatermซึ่งคุณอาจต้องการให้แน่ใจว่าคุณได้ติดตั้งถ้าคุณยังไม่ได้ ฉันไม่รู้เกี่ยวกับ Mac ทั้งหมดของ GNUOctave / GNUPlot / GNUterm / aquaterm ระบบนิเวศดังนั้นฉันจึงไม่สามารถแนะนำคุณเกี่ยวกับรายละเอียด nitty-gritty

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