Saya mencoba alias perintah sudo shutdown
tetapi saya .profile
tidak bisa melakukannya alias "sudo shutdown"="my command"
. Apakah ada cara lain untuk menjalankan perintah multi-kata di Unix?
Saya mencoba alias perintah sudo shutdown
tetapi saya .profile
tidak bisa melakukannya alias "sudo shutdown"="my command"
. Apakah ada cara lain untuk menjalankan perintah multi-kata di Unix?
Jawaban:
Nama alias ada di sebelah kiri, sehingga Anda dapat memiliki perintah multi-kata di kanan:
alias my_alias="multi worded command"
EDIT: Namun, jika Anda benar-benar ingin memiliki nama alias dari banyak kata - dalam contoh Anda, jika Anda benar-benar ingin "sudo shutdown" menjadi alias, Anda dapat mengatasinya dengan menggunakan fitur alias berikut (dalam manual bash) ):
A trailing space in value causes the next word to be checked for
alias substitution when the alias is expanded.
Jadi, jika Anda masih ingin menggunakan sudo
dengan perintah lain tetapi tidak dengan shutdown
dan jika Anda mampu untuk alias shutdown
ke sesuatu yang lain, Anda dapat memiliki:
alias sudo='sudo '
alias shutdown="echo nope"
Sekarang, sudo anything_else
akan berfungsi seperti yang diharapkan (dengan asumsi Anda tidak memiliki alias untuk anything_else
, tetapi jika Anda memilikinya tidak akan berfungsi sebelumnya juga); tetapi sudo shutdown
akan sama dengan sudo echo nope
dan itu akan mencetak string itu.
alias cd="cd "
alias dengan huruf tunggal alias X="<directory-with-long-name>"
untuk melompat dari satu tempat ke tempat lainnya dengan lebih mudah.
alias gti="git "
danalias lgo="log"
Gunakan fungsi:
foo() { if [ "$1" = "bar" ]; then echo "doing something..."; fi; }
else
case agar perintah orisinal berjalan jika parameter kedua tidak bar
:foo() { if [ "$1" = "bar" ]; then echo "doing something..."; else command foo "$@"; fi; }
Mengutip dari: Bash: Spasi dalam nama alias
The Bash dokumentasi negara "Untuk hampir setiap tujuan, fungsi shell lebih disukai daripada alias." Berikut adalah fungsi shell yang menggantikan ls
dan menyebabkan keluaran untuk disalurkan ke more
jika argumen terdiri dari (hanya) -la
.
ls() {
if [[ $@ == "-la" ]]; then
command ls -la | more
else
command ls "$@"
fi
}
Sebagai one-liner:
ls() { if [[ $@ == "-la" ]]; then command ls -la | more; else command ls "$@"; fi; }
Keluaran pipa secara otomatis:
ls -la
Saya lebih suka meletakkan file yang dapat dieksekusi di / usr / local / bin (pastikan ada di jalur Anda) yang kemudian berisi perintah yang ingin saya jalankan. Nama skrip akan menjadi perintah yang muncul. pastikan untuk chmod + x / usr / local / bin / your_script.
Jadi skrip bisa disebut 'shutdown'
Isi dari shutdown file adalah:
#!/bin/sh
sudo shutdown
Itu membuka dunia yang sama sekali baru. Anda kemudian dapat memiliki beberapa perintah atau bahkan sebuah skrip:
#!/usr/bin/env python
print "hi"
# more stuff. ....