2013-11-21 36 views
35

İstediğimi yapar bu komutu var ama (o tek ve çift tırnak hem kullandığına dikkat edin) benim .bashrc bunu diğer ad alamayan:bash takma komut

svn status | awk '$1 =="M"{print $2;}' 

denedim: hayır şans ile

alias xx="svn status | awk '$1 ==\"M\"{print $2;}'" 

ve diğer bazı sağduyu kombinasyonları .. ben biliyorum o bash edilir tırnak ile çok seçici .. Öyleyse neden diğer ad doğru yolu nedir? Teşekkürler

cevap

45

Sadece doğru şekilde çıkmanız gerekiyor.

alias xxx="svn status | awk '\$1 ==\"M\"{print \$2;}'" 
+7

kullanmaya çalışmaktan daha iyi bir yol çünkü ben de $ kaçmıyordum .. bunu bilmiyordum! –

+2

Güzel! Ben de bilmiyordum '$' ya kaçmak zorunda! – Shadoninja

+0

İyi bir cevap ama aynı zamanda bir hata yapmanın ne kadar kolay olduğunu hatırlatıyor. İşlediğim durumda zaten kaçmış karakterler vardı ve büyük bir karışıklık yarattı. Aşağıda EJK'nin cevabı benim için daha yararlı oldu, bir fonksiyon muhtemelen birçok için daha temiz bir seçenek olduğunu :) – jerclarke

45

Bir takma ad kullanmadan aynı şeyi gerçekleştiren bir şey. .bashrc bir işlev koy:

xx() { 
    svn status | awk '$1 =="M"{print $2;}' 
} 

sadece doğru teklifi alma konusunda endişelenmenize gerek yok Bu şekilde. Bu komut satırında tam olarak aynı sözdizimini kullanır.

+4

+1, ancak bir kelime haznesi - 'function' anahtar sözcüğü, POSIX ile gereksiz bir uyumsuzluktur. Sadece onu bırakın: 'xx() {...' –

+4

Bunu bilmiyordum. Teşekkürler. – EJK

+1

Bu daha basit ve ben bunu seviyorum, ama diğeri soru daha hassas cevap verdi .. –