Pertanyaan Cara membuat alias dari pernyataan dengan banyak: "dan banyak: '


Bagaimana cara menjadikan ini alias di zsh?

svn status | grep "^?" | awk -F "      " '{print $2}' | tr "\n" "\0" | xargs -0 svn add

Saya tahu itu harus menjadi sesuatu yang sejalan:

alias sall = "the command"

Tetapi karena garis bercampur "dengan" Saya tidak tahu cara mengatasinya.


2
2018-02-17 17:29


asal




Jawaban:


Anda dapat menggunakan "untuk perintah awk Anda.

alias sall='svn status | grep "^?" | awk -F " " "{print $2}" | tr "\n" "\0" | xargs -0 svn add'

harus bekerja.


5
2018-02-17 17:31



Versi karakter yang lolos memberikan kesalahan tentang 'tidak dicocokkan. Tetapi versi pertama bekerja, jika Anda membuatnya alias sall = 'svn st ...' (tidak ada spasi) - Nerian
@Nerian: Jika Anda menggunakan tanda kutip ganda di sekitar perintah awk, Anda harus keluar dari tanda dolar: awk -F " " "{print \$2}" - Dennis Williamson
Maaf, Bash membutuhkannya. Rupanya zsh tidak. Setelah mencoba keduanya, saya melihat perbedaannya. - Dennis Williamson


Gunakan fungsi.

sall() {
    svn status | sed -rn 's/^\? {7}//p' | xargs -d '\n' svn add
}

(Sejak svn menggunakan baris baru sebagai pemisah keluaran, tidak masuk akal untuk mengonversinya menjadi null dan kembali.)


1
2018-02-17 22:02