ฉันพยายามที่จะนามแฝงคำสั่งsudo shutdown
แต่ของฉันฉันไม่สามารถเพียงแค่ทำ.profile
alias "sudo shutdown"="my command"
มีวิธีอื่นในการใช้นามแฝงคำสั่งที่มีหลายคำใน Unix หรือไม่?
ฉันพยายามที่จะนามแฝงคำสั่งsudo shutdown
แต่ของฉันฉันไม่สามารถเพียงแค่ทำ.profile
alias "sudo shutdown"="my command"
มีวิธีอื่นในการใช้นามแฝงคำสั่งที่มีหลายคำใน Unix หรือไม่?
คำตอบ:
ชื่อนามแฝงอยู่ทางซ้ายมือดังนั้นคุณสามารถมีคำสั่งหลายคำทางขวา:
alias my_alias="multi worded command"
แก้ไข: อย่างไรก็ตามหากคุณต้องการให้ชื่อแทนหลายคำ - ในตัวอย่างของคุณหากคุณต้องการให้ "sudo shutdown" เป็นนามแฝงคุณสามารถแก้ไขได้โดยใช้คุณสมบัตินามแฝงต่อไปนี้ (ในคู่มือทุบตี ):
A trailing space in value causes the next word to be checked for
alias substitution when the alias is expanded.
ดังนั้นหากคุณยังต้องการใช้sudo
กับคำสั่งอื่น แต่ไม่ใช้shutdown
และถ้าคุณสามารถที่จะใช้นามแฝงshutdown
กับสิ่งอื่นคุณสามารถมี:
alias sudo='sudo '
alias shutdown="echo nope"
ตอนนี้sudo anything_else
จะทำงานได้ตามที่คาดไว้ (สมมติว่าคุณไม่มีนามแฝงanything_else
แต่ถ้าคุณมีก็ไม่ได้ทำงานมาก่อน) แต่sudo shutdown
จะเทียบเท่าsudo echo nope
และจะพิมพ์สตริงนั้น
alias cd="cd "
นามแฝงตัวอักษรเดียวalias X="<directory-with-long-name>"
เพื่อข้ามจากที่หนึ่งไปอีกที่หนึ่งได้ง่ายขึ้น
alias gti="git "
และalias lgo="log"
ใช้ฟังก์ชั่น:
foo() { if [ "$1" = "bar" ]; then echo "doing something..."; fi; }
else
เคสเพื่อให้คำสั่งดั้งเดิมรันหากพารามิเตอร์ที่สองไม่ใช่ bar
:foo() { if [ "$1" = "bar" ]; then echo "doing something..."; else command foo "$@"; fi; }
อ้างจาก: Bash: Spaces ในชื่อนามแฝง
เอกสารคู่มือBashระบุว่า "สำหรับเกือบทุกวัตถุประสงค์ฟังก์ชั่นเชลล์เป็นที่ต้องการมากกว่าชื่อแทน" นี่คือฟังก์ชั่นเปลือกที่มาแทนที่ls
และสาเหตุการส่งออกจะได้รับการประปาmore
ถ้าอาร์กิวเมนต์ประกอบด้วย -la
(เท่านั้น)
ls() {
if [[ $@ == "-la" ]]; then
command ls -la | more
else
command ls "$@"
fi
}
ในฐานะที่เป็นหนึ่งซับ:
ls() { if [[ $@ == "-la" ]]; then command ls -la | more; else command ls "$@"; fi; }
ส่งออกท่ออัตโนมัติ:
ls -la
คุณสามารถใช้เส้นประเพื่อหลีกเลี่ยง: alias sudo-shutdown="your command"
ฉันชอบใส่ไฟล์ปฏิบัติการใน / usr / local / bin (ต้องแน่ใจว่าอยู่ในพา ธ ของคุณ) ที่มีคำสั่งที่ฉันต้องการเรียกใช้ ชื่อของสคริปต์จะเป็นคำสั่งที่เกิดขึ้น ต้องแน่ใจว่าได้ chmod + x / usr / local / bin / your_script
ดังนั้นสคริปต์อาจถูกเรียกว่า 'ปิดระบบ'
เนื้อหาของการปิดระบบไฟล์จะเป็น:
#!/bin/sh
sudo shutdown
ที่เปิดโลกใหม่ทั้งหมด จากนั้นคุณสามารถมีคำสั่งคู่หรือแม้แต่สคริปต์:
#!/usr/bin/env python
print "hi"
# more stuff. ....