Sebagian besar alias saya adalah dalam bentuk ini: alias p='pwd'
Saya ingin alias git commit
sehingga tidakgit commit -v
Tetapi mencoba membuat alias dengan spasi memberikan kesalahan:
$ alias 'git commit'='git commit -v'
-bash: alias: `git commit': invalid alias name
git config
tidakgit-config
git
perintah dengan alias, dengan hanya sedikit script shell. (Saya tidak memposting komentar ini sebagai kritik, BTW. Jawaban itu diposting hampir setahun setelah Anda! Saya hanya mempostingnya dengan harapan orang-orang akan merasaAnda sedang berbicara tentang perintah yang termasuk spasi, tetapi di sini perintah itu
git
dan tidak ada ruang di sana.Untuk memanggil perintah git commit , Anda harus menulisnya
Umumnya perintah tidak memiliki ruang dalam nama mereka karena alasan itu rumit untuk memanggil mereka dalam shell, jadi saya tidak berpikir Anda akan menemukan perintah seperti itu di sistem Anda.
csh, tcsh atau zsh akan memungkinkan Anda untuk alias salah satu dari yang di atas, tetapi tidak bash atau ksh (meskipun pdksh akan memungkinkan Anda tetapi Anda tidak akan membiarkan Anda menggunakannya). Dalam zsh:
Akan membuat
git command
perintah (ketika dipanggil hanya'git command'
(dengan tanda kutip tunggal)) alias untukgit
perintah dengancommit
dan-v
argumen. Tidak apa yang Anda cari, saya kira.Karena
alias
hanya bisa alias perintah , yang Anda bisa alias di sini adalahgit
perintah, dan Anda perlu alias untuk sesuatu yang memasukkan "-v" setelah "komit" di daftar argumennya. Yang terbaik adalah menggunakan solusi @ jw013 tetapi jika karena alasan tertentu Anda tidak bisa atau tidak, alih-alih menggunakan alias, Anda bisa menggunakan fungsi untuk melakukan pekerjaan:sumber
Di Bash Anda tidak bisa membuat alias untuk untuk perintah dengan spasi kosong di dalamnya.
Namun, saya menggunakan fungsi berikut di .bashrc saya sebagai solusinya.
Cara kerjanya adalah: Anda mulai dengan perintah yang ingin Anda panggil. Dalam kasus saya itu
sudo
.Kemudian, Anda menyebutkan parameter apa yang diperlukan. Dalam hal ini
pacman -Syu
,.Jika, dipicu, perintah apa yang harus dijalankan? Dalam pernyataan di atas itu
pacup.sh
.Lain, perintah apa yang harus dieksekusi
sudo $@
,.$@
adalah, seperti yang akan Anda tebak oleh, daftar parameter yang diambil oleh perintah.Jadi, membuat perintah untuk kasus khusus Anda, itu akan menjadi:
Namun, solusi ini adalah untuk kasus yang lebih umum ketika Anda ingin alias perintah dengan spasi putih di dalamnya.
Dalam kasus spesifik Anda, saya akan merekomendasikan Anda pergi dengan solusi jw013 untuk alias menggunakan perintah git Anda
git-config
sumber
if [[ $1 == 'commit' ]]...
? Ekspansi $ @ mungkin memiliki lebih banyak argumen untuk komit yang sebenarnya ingin Anda pertahankan.Dari halaman bash alias man
Jadi, karena hanya kata pertama yang diperiksa, Anda tidak dapat memiliki alias dengan banyak kata. Dalam pertanyaan Pengguna Super ini , solusi yang menggunakan fungsi disediakan:
Itu bisa disesuaikan dengan
git
.sumber
\ls
memintas alias untukls
.[_!%,@]
) harus diperluas. Itu tidak melarang ekstensi seperti aliasing zsh dari '\ ls', atau aliasing ksh / dash / bash / zsha-b
jika tidak, tidak akan ada shell POSIX tunggal. Itu hanya mengatakan skrip portabel (bukan shell) tidak boleh menggunakan alias semacam itu.'git commit'
dalam posisi perintah dalam shell POSIX, ia harus menjalankan utilitas bawaan, fungsi, atau perintah eksternal.Meskipun solusi yang benar adalah dengan menggunakan alias seperti yang disarankan jw013, untuk membuat alias dengan spasi Anda dapat membuat NEST alias.
Sebagai contoh, saya memiliki alias untuk menghapus cabang baik secara lokal maupun jarak jauh, tetapi saya ingin pengguna selalu menentukan cabang:
sumber
Dari contoh ini , ini seharusnya berfungsi:
Tetapi dengan perintah Anda:
sumber