Kısa bir soru. Çıktıyı Ubuntu 16.04 LTS'de sekmek mümkün mü? Bununla ne demek istediğimi göstermek için aşağıda iki resim oluşturdum.
Kısa bir soru. Çıktıyı Ubuntu 16.04 LTS'de sekmek mümkün mü? Bununla ne demek istediğimi göstermek için aşağıda iki resim oluşturdum.
Yanıtlar:
Dosya tanımlayıcılarıyla böyle bir şey yapabilirsiniz:
daha sonra geri yükleyebilmemiz için mevcut çıkış tanımlayıcısını kaydet
exec 3>&1çıkış akışını sekmeyi ekleyen bir işlem ikamesine yönlendirin - örneğin
exec 1> >(paste /dev/null -)Bu noktadan itibaren, standart çıktıya yazan herhangi bir işlem, o çıktıyı pastebaşlangıçta sekme ekleme komutuyla 'filtrelendi' .
İşiniz bittiğinde, kaydedilen dosya tanımlayıcısını geri yükleyip geçici olanı kapatarak normal davranışa devam edebilirsiniz.
exec 1>&3 3>&-lessörneğin, örneğin, çıkışın kaydırılmasına izin veren benzer araçları kullanan programların çıktısını da keser man.
Bu cevabın sizin için en uygun olmadığını anlıyorum, ancak _argüman olarak aldığı ve çıkışının tamamını bir sekme ile girintili olarak çalıştıran basit bir adla (veya henüz kullanılmamış başka bir şeyle) bir Bash işlevi yapabilirsiniz .
Bir örnek:
$ _ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04 LTS
Release: 16.04
Codename: xenial
Bu işlevin kodu yalnızca şu olurdu:
_(){ sed "s/^/\t/" <($*); }
~/.bashrcDosyanıza ekleyerek , kullanıcının aşağıdaki Bash oturumlarında çalışmasını sağlayabilirsiniz:
echo '_(){ sed "s/^/\t/" <($*); }' >> ~/.bashrc
Tüm kullanıcılar tarafından kullanılabilir olmasını istiyorsanız, /etc/bash.bashrcbunun yerine ekleyin (yönetici hakları gerektirir):
echo '_(){ sed "s/^/\t/" <($*); }' | sudo tee -a /etc/bash.bashrc
Alternatif olarak /usr/local/bin/_, Bash işlevleri olmadan ve tüm kullanıcılar için aynı şeyi elde etmek için aşağıdaki içeriğe benzer bir komut dosyası oluşturabilirsiniz :
#!/bin/bash
sed "s/^/\t/" <($*)
Kullanarak dosyayı kaydettikten sonra komut dosyasını çalıştırılabilir yapmalısınız
sudo chmod +x /usr/local/bin/_
İle echospesifik olarak, bunu gibi ters eğik çizgi kaçar yorumlamak olabilir \t(bir sekme durağı ile) -eanahtarı:
echo -e "\tHello World"
Ancak her komutun çıktısını bu şekilde değiştirmek mümkün değildir (veya muhtemelen mümkün değildir). Hedefiniz okuma kolaylığı ise, burada gösterildiği gibi komut isteminizin görünümünü (ör. Renklendirme) özelleştirmeyi düşünebilirsiniz:

Ortam değişkeninin içeriğini değiştirerek isteminizi özelleştirebilirsiniz PS1. Yukarıdaki ekran görüntüsünün blog yazısında bunun nasıl yapılacağına dair küçük bir örnek görebilirsiniz. ANSI kaçış dizileri ayrıntılı olarak nasıl kullanılır, daha rahat araçlar nasıl kullanılır, değişikliklerin yeni terminallerde varsayılan olarak nasıl uygulanması vb. Bu cevabın kapsamı dışındadır. Ancak bu tekniği kullanmaya karar verirseniz, web üzerinde birçok öğretici ve daha fazla bilgi vardır.
YOUR COMMAND | indentveya önüne başka bir komut yazmanız gerekiyorsa (sadece bir alt çizgi olabilir) iyi olur_ YOUR COMMANDmu?