นี่เป็นโพรซีเดอร์ทั่วไปที่คุณสามารถใช้กับเชลล์ใด ๆ ก็ได้ ไม่ว่าในกรณีใดคุณต้องรู้ว่าเชลล์ใดที่ผู้ใช้จะเข้าสู่ระบบด้วย:
path="$(grep $USER /etc/passwd | cut -d ':' -f 7)"
shell="$(basename -- "$path")"
จากนั้นคุณต้องหาว่าจุดไหนที่เชลล์นี้จะอ่านได้ตามปกติ:
man $shell
ทางลัดที่อาจใช้งานได้คือการแสดงรายการไฟล์ดอทเหล่านั้นซึ่งมีชื่อเชลล์:
ls ~/.*${shell}*
หากคุณต้องการตรวจสอบว่าไฟล์ใดไฟล์หนึ่งถูกอ่านจริงระหว่างการล็อกอินคุณสามารถพิมพ์ชื่อไฟล์ในแต่ละไฟล์ตัวอย่างเช่น:
echo .bashrc
เมื่อเข้าสู่ระบบคุณควรเห็นไฟล์ที่กำลังอ่านอยู่และคุณสามารถตัดสินใจว่าจะแก้ไขไฟล์ใด ระวังว่าคุณไม่ควรลองใช้echo "$0"
หรือคล้ายกันเพราะค่าของมัน$0
ขึ้นอยู่กับว่าเชลล์ประมวลผลไฟล์จุดและอาจทำให้เข้าใจผิด
เมื่อมันมาถึงการประกาศตัวแปร "ถาวร" โปรดทราบว่าสิ่งนี้ขยายไปถึงเซสชั่นเท่านั้น ไม่มีวิธีในการเข้าถึงค่าของตัวแปรโดยไม่มีเซสชันดังนั้นจึงไม่มีความหมายนอกหนึ่ง หากคุณหมายถึง "อ่านอย่างเดียว" นั่นคือการพึ่งพาเชลล์และในBashคุณสามารถใช้:
declare -r VAR
หากมีค่าอยู่แล้วหรือ
declare -r VAR=value
เพื่อกำหนดในเวลาเดียวกัน เชลล์บางตัวเท่านั้นที่มีคุณสมบัตินี้
ในการประกาศตัวแปรในเชลล์ส่วนใหญ่คุณควรใช้ชื่อตัวแปร ( [A-Za-z_][A-Za-z0-9_]*
) ตามด้วยเครื่องหมายเท่ากับ (และไม่มีการเว้นวรรครอบเครื่องหมายเท่ากับ) จากนั้นค่า (ควรอ้างอิงโดยอ้างว่าเป็นค่าที่ง่าย[A-Za-z0-9_]+
) ตัวอย่างเช่น:
name="John Doe"
ip=127.0.0.1
HORRIBLE=1