นามแฝงมีความหมายสำหรับนามแฝงชื่อคำสั่ง สิ่งใดนอกเหนือจากนั้นควรทำด้วยฟังก์ชั่น
alias ll='ls -l' # The ll command is an alias for ls -l
ชื่อแทนคือชื่อที่ยังคงเชื่อมโยงกับชื่อเดิม เป็นเพียงชนิดเฉพาะเล็กน้อยll
ls
d() {
if exists colordiff; then
colordiff -ur "$@"
elif exists diff; then
diff -ur "$@"
elif exists comm; then
comm -3 "$1" "$2"
fi | less
}
ฟังก์ชั่นเป็นคำสั่งใหม่ที่มีตรรกะภายใน มันไม่ใช่แค่เปลี่ยนชื่อของคำสั่งอื่น มันจะดำเนินการภายใน
ในทางเทคนิคแล้วนามแฝงในภาษา Bash shell นั้นมีข้อ จำกัด ในด้านความสามารถที่ไม่เหมาะสมอย่างยิ่งสำหรับสิ่งที่เกี่ยวข้องกับคำสั่งเดียวมากกว่า ใช้พวกมันเพื่อสร้างการกลายพันธุ์เล็กน้อยของคำสั่งเดียว
เนื่องจากความตั้งใจคือการสร้างคำสั่งใหม่ที่ดำเนินการการดำเนินการซึ่งภายในจะแก้ไขในคำสั่งอื่น ๆ คำตอบที่ถูกต้องคือการใช้ฟังก์ชั่นที่นี่:
lock() {
gnome-screensaver
gnome-screensaver-command --lock
}
การใช้นามแฝงในสถานการณ์เช่นนี้เกิดปัญหามากมาย ตรงกันข้ามกับฟังก์ชั่นซึ่งดำเนินการเป็นคำสั่งนามแฝงจะถูกขยายเข้าไปในคำสั่งปัจจุบันซึ่งจะนำไปสู่ปัญหาที่ไม่คาดคิดเมื่อรวม "คำสั่ง" นามแฝงนี้กับคำสั่งอื่น พวกเขายังไม่ทำงานในสคริปต์