Portál AbcLinuxu, 15. května 2025 18:19

Dotaz: analytický nástroj pro bash skript

20.2.2018 19:31 seamus
analytický nástroj pro bash skript
Přečteno: 318×
Odpovědět | Admin
Dobrý den, chtěl bych se zeptat jestli někdo neví o nástroji, který by provedl analýzu bash skriptu a jako výsledek vrátil seznam použitých "příkazů", které nebude možné spustit - tzn. neodkazují na program instalovaný v systému ani nejsou definovány jako interní funkce daného skriptu.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

20.2.2018 21:08 NN
Rozbalit Rozbalit vše Re: analytický nástroj pro bash skript
Odpovědět | | Sbalit | Link | Blokovat | Admin
Shellcheck? Mozna to bude umet nejake programovaci IDE s podporou Bash.
20.2.2018 23:02 pc2005 | skóre: 38 | blog: GardenOfEdenConfiguration | liberec
Rozbalit Rozbalit vše Re: analytický nástroj pro bash skript
Odpovědět | | Sbalit | Link | Blokovat | Admin
No stavím se k tomu dost skepticky, příkaz v bashi se dá sestavit dynamicky za běhu a pak pustit z proměnné. To bude IMO halting problem (spusť n-tý program v /usr/bin, přičemž n=poslední dvojčíslí aktuálního unix času; a nebo prostě jednodušeji → ./configure skript, který si nejdřív zkompiluje testovací binárku a pak jí spustí).

Pro podmnožinu případů by to nejspíš šlo. Ale na sestavení kompletních závislostí to nebude.
Intel meltdown a = arr[x[0]&1]; karma | 帮帮我,我被锁在中国房
21.2.2018 00:48 fe
Rozbalit Rozbalit vše Re: analytický nástroj pro bash skript
Odpovědět | | Sbalit | Link | Blokovat | Admin
No ono se taky může stát, že ten skript je naprogramován multiplatformě, tj, že obsahuje příkazy, které se na Linuxu nenajdete (nespustí se), ale na AIXu nebo Solarisu ano.

Pokud výše uvedené neplatí, pak můžete si vytvořit výpis spustitelných souborů ze složek v $PATH a $PWD a pak porovnávat jestli ve vašem skriptu není příkaz jehož jméno není obsažen ve výpisu ani ve skriptu samotném a nezapomenout na to, že příkazy mohou být uvedeny s absolutní cestou a že v tom skriptu může být jméno funkce/bloku stejné jako jméno příkazu. To není úplně složité ale chvilku si s tím vyhrajete :-) ale na druhou stranu nic co by nezvládl for/while cyklus a sed+grep ;-)
21.2.2018 08:09 seamus
Rozbalit Rozbalit vše Re: analytický nástroj pro bash skript
Odpovědět | | Sbalit | Link | Blokovat | Admin
Díky za nápady. V tuto chvíli tedy stručně shrnu: shellcheck s bohužel pro daný účel použít nedá. Zdá se tedy, že cesta bude napsat vlastní skript. Až ho budu mít hotový, tak sem přidám. Jinak samozřejmě pokud by byl někdo rychlejší, tak uvítám návrhy kódu.

Založit nové vláknoNahoru

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

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