DÜZENLE
TL; DR : içinde otomatik tamamlama kısayolu oluştur .inputrc
ve işlevini yap .bashrc
. Komutu her zamanki gibi çalıştırın, yazın, ancak bunun yerine, ENTERbelirttiğiniz kısayola basın..inputrc
Bu soruya ödül veren kişi şöyle dedi:
"Mevcut cevapların tümü komuttan sonra ek bir komut girmenizi gerektirir. Bunu otomatik olarak yapan bir cevap istiyorum."
Bu sorunun çözümlerini araştırırken, bir komut dizisine bağlanmayı sağlayan stackexchange'ten bu soruya rastladım CtrlJ: Ctrla(satırın başına git), girdiğiniz komutun önüne "mesure" dizesini yerleştirin Ctrlm(çalıştır)
Böylece ENTER, aşağıda belirtilen ikinci işlevin orijinal amacına bakarken , otomatik tamamlama işlevselliğini ve zaman ölçmek için ayrı bir komut alırsınız .
Şu an itibariyle, işte dosyamın içeriği ~/.inputrc
:
"\C-j": "\C-a measure \C-m"
Ve işte .bashrc
(not, sonsuza dek bash kullanmadım - kabuğum olarak mksh kullanıyorum, bu yüzden orijinal yazıda gördüğünüz budur. İşlevsellik hala aynıdır)
PS1=' serg@ubuntu [$(pwd)]
================================
$ '
function measure ()
{
/usr/bin/time --output="/home/xieerqi/.timefile" -f "%e" $@
if [ $( cat ~/.timefile| cut -d'.' -f1 ) -gt 15 ]; then
notify-send "Hi , $@ is done !"
fi
}
Orijinal Gönderi
İşte benim fikrim - bir işlev kullanın .bashrc
. Temel prensip - /usr/bin/time
komutun tamamlanması için geçen süreyi ölçmek için kullanın ve 15 saniyeden uzunsa bildirim gönderin.
function measure ()
{
if [ $( /usr/bin/time -f "%e" $@ 2>&1 >/dev/null ) -gt 15 ]; then
notify-send "Hi , $@ is done !"
fi
}
Burada çıktıyı yönlendiriyorum /dev/null
ama çıktıyı görüntülemek için dosyaya yönlendirme de yapılabilir.
Çok daha iyi bir yaklaşım olan IMHO, ana klasörünüzdeki bir dosyaya zamanın çıktısını göndermektir (sadece sisteminizi zaman dilimleriyle kirletmemeniz ve her zaman nereye bakacağınızı bilmeniz). İşte bu ikinci versiyon
function measure ()
{
/usr/bin/time --output=~/.timefile -f "%e" $@
if [ $( cat ~/.timefile | cut -d'.' -f1 ) -gt 15 ]; then
notify-send "Hi , $@ is done !"
fi
}
Ve işte birinci ve ikinci versiyonun ekran görüntüleri bu sırada
İlk versiyon, çıktı yok
Çıkışlı ikinci versiyon