2012-03-03 6 views
24

Basit bir bash komut dosyası yazdım çünkü tekrar tekrar aynı argümanlarla bir grep komutu kullanıyordum. ~/Bin'den çalıştırıyorum ve gayet iyi çalışıyor.grep bash komut dosyasından çalıştırıldığında renklendirme kaybediyor

Sorunum'dur: Tüm boyama, benim bash komut dosyanızdan çalıştırıldığında kaybolur. aynı komut komut içine doğru koymak güzel renk kodları satır numaraları, dosya adları vb

İşte benim bash komut

#!/bin/bash 
# grep php files inside of myfolder, recursively and with line numbers 

grep -rn --include="*.php" "$2" /home/me/myfolder/$1 

cevap

40

Muhtemelen .bashrc yılında grep --color=auto için takma ad olarak grep tanımladığınız, ama Bu komut dosyaları tarafından yüklenmemiş. Komut dosyanızda açık bir grep --color kullanın.

+1

heh, o da: D – PlexQ

+0

Kullanıyorum --color = auto ve çalışmıyor – juanmf

0

Bir komut dosyası çalıştırdığınızda, bunu yapmak için yeni bir kabuk oluşturulur. Bu yeni ortam varsayılan kabuğunuzla aynı ayarlara sahip değil. Rengi nasıl geri alacağına dair emin değilim. Sen script başında profilinizi kaynak deneyebilirsiniz: hangisi dosya

#!/bin/bash 
source $HOME/.bash_profile 

veya birkaç isim için özellikle unix lezzet (.profile, .bash_rc, Bashrc .bash_profile) üzerinde mantıklı.

+0

Bunu 'source $ HOME/.bashrc' ve 'source $ HOME/.profile' ile denedim ama didn ' Benim için çalış. Gerçekten bunun çözüm olacağını umuyordum, böylece geleceğin betiklerinde '--color' ya da diğer öngörülemeyen paramlar gibi şeyleri açıkça belirtmem gerekmeyecek. – jairbow

+1

Seçeneği komut dosyasının ortamına verebilirsiniz: 'export GREP_OPTIONS = '- color = always' ' – Thor