Bash tamamlamalarında nasıl hata ayıklayabilirim?


14

Hepsi tek başına çalışıyor gibi görünen bazı bash tamamlama işlevleri oluşturdum, ancak onlarla tam sekmeye çalıştığımda bana beklenmedik sonuçlar veriyor.

Bashdb'yi bağlamak, sonra bir şeyi tamamlamak ve hata ayıklamak ve neyin yanlış gittiğini belirlemek için adım atmaya çalışmak mümkün mü?


2
Sadece sentlerime eklemek için: set -xkomut dosyalarınızda hata ayıklamak için in bash'ı kullanmalısınız . Devre set +xdışı bırakmak için kullanın .

Yanıtlar:


6

set -x

Eğer set -xikisinden biri etkileşimli oturum veya otomatik tamamlama komut kendisinde, (neredeyse?) Her komut ve sonuçları basılacaktır. Bu, otomatik tamamlama komut dosyasının içinde yapılan işleri içerir.

Bu daha sonra ile tekrar susturulabilir set +x.

-x

Her basit komutu genişlettikten sonra, komut, büyük / küçük harf komutu, select komutu veya komut için aritmetik için, PS4'ün genişletilmiş değerini, ardından komutu ve genişletilmiş bağımsız değişkenlerini veya ilişkili sözcük listesini görüntüleyin.

-Bash kılavuzundan #The Set Builtin


2

Sadece bash tamamlama işlevlerinden günlük / çıktı; büyük olasılıkla roket bilimi olmadıklarından, bunu yapmak oldukça kolay olmalıdır. Bashdb'yi bağlamak mümkün olabilir, ancak gereksiz hissettiriyor ...


Bashdb'yi bağlamak, komut dosyalarına günlük ifadeleri eklemekten çok daha basit ve daha hızlı olurdu. Ancak, bunun mümkün olup olmadığını bilmiyorum ve cevapların olmaması bunun olmadığını gösteriyor. Sorununuzu, önerdiğiniz gibi bir dosyaya günlüğe kaydederek çözmeyi başardım, ancak tamamlamalarla çalışırken günlük bilgilerinin terminale gönderilmesi yararlı değildir.
Dan Midwood

3
@DanMidwood: İki terminal kullanın (örn. Ekran + bölünmüş). Birincisinde, ikincisinde tail -fgünlüğü tamamlayın .
choroba

@choroba: Güzel olan. : D
Tamara Wijsman
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.