Beberapa posting yang lalu seseorang bertanya bagaimana menampilkan memori dalam persentase. Seseorang menjawab dengan:
free | awk '/^Mem/ { printf("free: %.2f %\n", $4/$2 * 100.0) }'
Saya bertanya-tanya apakah saya dapat mengubah perintah ini menjadi alias di ~ / .bashrc. Tetapi sintaks alias adalah:
alias aliasname='command'
Bagaimana saya bisa melakukan ini? Perintah itu mengandung keduanya '
dan "
. Saya mencoba berbagai cara, tetapi tidak berhasil. Apakah ini mungkin? Apakah saya melewatkan sesuatu?
aliasname() { free | awk '/^Mem/ { printf("free: %.2f %\n", $4/$2 * 100.0) }'; }
- masih hanya satu baris, tidak ada perubahan untuk mengutip / melarikan diri / etc diperlukan sama sekali. Ada alasan!alias
factoid saluran freenode #bash adalah (well, was , tetapi untuk sebagian besar kehidupan bot factoid beberapa varian): Jika Anda harus bertanya, gunakan fungsi sebagai gantinya .Jawaban:
Anda membutuhkan:
Perhatikan bahwa Anda harus melarikan diri dari keduanya
"
dan$
.sumber
Mengatakan bahwa sintaks alias
alias aliasname='command'
agak menyesatkan, karena tampaknya menyiratkan bahwa tanda kutip tunggal adalah bagian dari sintaks. Mereka tidak. Bagian setelah tanda sama dengan mirip dengan penugasan variabel, dalam hal itu bisa berupa kata shell , terdiri dari karakter polos (tanpa tanda kutip), atau string yang dikutip, atau kombinasi.Ini semua valid, dan tiga padanan terakhir:
Jadi, yang perlu Anda lakukan adalah melarikan diri dari tanda kutip dengan benar agar ada di dalam nilai alias.
Lihat, misalnya jawaban ini dan jawaban lain untuk misalnya pertanyaan ini untuk diskusi tentang itu:
Atau, gunakan fungsi alih-alih alias untuk menyingkirkan masalah kutip sepenuhnya:
sumber