Portál AbcLinuxu, 1. července 2026 20:01

Nápověda v shellovém skriptu

dnes 18:06 | Přečteno: 108× | Za vším hledej Linux | poslední úprava: dnes 18:38

Při správě disklessové infrastruktury využívám tři shellové skripty: kokr o velikosti 296 kB, napsaný před 15 lety, dělá v podstatě to samé co libvirt; SQimage.sh, co squashuje a kryptuje vrstvy pro Half-Disklessové stroje má 36 kB a pomocný skript distro.sh, který využívám při zakládání a údržbě vrstev má tuhle chvíli 30 kb. Asi ⅔ jejich kódu tvoří poznámky a nápověda.

 

Pracuji s nimi zpravidla jen v období mezi semestry a tu nápovědu píšu proto, abych si mohl později připomenout jak se používají, když to pozapomenu.

Např. kokr podporuje i živou migraci protože jsem ho napsal pro heterogenní clusterové prostředí. Ale využíval tak málo, že si už za ty roky co uplynuly od chvíle, kdy jsem toho naposled využil ani nejsem jist, jestli s aktuální verzí qemu funguje.

Nejmladší z těch tří skriptů je distro.sh – původně to byl jen narychlo splácaný skript, který měl ze surové vrstvy vykopat zbytečnosti. Dnes mi hlavně šetří čas, protože je součástí konfigurační vrstvy, se kterou pracují všechny Full-Diskless stroje. Do nápovědy si píšu také různé hinty, abych se nezdržoval hledáním na internetu, k němu nemám přístup, a dostanu zrovna okno.

Velikost okna mne omezuje, proto se snažím vejít do 24x80 znaků a pro větší přehlednost využívám ANSI sekvence, které na konzoli zvýrazní to podstatné.

Víceřádkové bloky, včetně ukázkového použití, schémat či ukázek kódu – zkrátka vše co se musí více okecat – vypisuji přes funkci longhelp:

longhelp () {
    echo """
    ...
"""
}

K editaci používám nejčastěji mcedit a protože tu nápovědu doplňuji jen když přidám novou poznámku či funkcionalitu, vznikl tenhle blogpost – abych nemusel dlouho hledat, až to pozapomenu.

ANSI sekvence jsem dříve kopíroval ze skriptu do skriptu, ale dnes je vkládám pomocí klávesové zkratky Ctrl + Q, která otevírá dialog, přes který se po stisku klávesy [ vloží do textu řídící znak ANSI sekvence (černě podbarvené znaky ^[). Za ten dopíšu hranatou závorku a kód co potřebuji:

  1. [1m pokud má jít o tučný text
  2. [4m pokud chci nějaký text podtrhnout
  3. [3 zvýrazní text kurzívou

A pro návrat do výchozího stavu [0m

Používám také kombinace, např. kód [21;1m zobrazuje tučný text podtržený, který lze vrátit na tučný text bez podtržení sekvencí [0;1m

Díky tomu je i při omezené velikosti okna terminálu vypsaná nápověda přehlednější a pokud je delší, proháním ji přes less, který se postará o hledání či stránkování:

...
longhelp $@ | less -R -i
...
       

Hodnocení: -

zatím nehodnoceno
        špatnédobré        

Obrázky

Nápověda v shellovém skriptu, obrázek 1

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.