K dispozici je ShellCheck 0.9, statický analyzátor pro shellové skripty

Bylo vydáno vydání projektu ShellCheck 0.9, které rozvíjí systém statické analýzy shellových skriptů a podporuje odhalování chyb ve skriptech s ohledem na specifika bash, sh, ksh a dash. Kód projektu je napsán v jazyce Haskell a je šířen pod licencí GPLv3. Jsou poskytovány komponenty pro integraci s Vim, Emacs, VSCode, Sublime, Atom a různými integrovanými prostředími, které podporují GCC-kompatibilní výstup chybových hlášení.

K dispozici je ShellCheck 0.9, statický analyzátor pro shellové skripty

Podporuje se odhalování v kódu jak syntaktických chyb, které vedou k tomu, že interpretr vyhlásí chybu během vykonávání, tak semantických problémů, kdy vykonávání není přerušeno, ale dochází k anomáliím v chování skriptu. Analyzátor také může určit úzká místa, nejasné problémy a skryté pastičky, které mohou vést k selhání za určitých okolností.

Mezi třídami odhalovaných chyb lze zmínit problémy s escapováním speciálních znaků a ohraničováním v uvozovkách, chyby v podmínkových výrazech, nesprávné používání příkazů, problémy s časovými a datovými operacemi a typické syntaktické chyby nováčků. Například, absence mezer při porovnávání „[[ $foo==0 ]]“, existence mezer „var = 42“ nebo uvedení znaku $ při přiřazení „$foo=42“, používání proměnných bez uvozovek „echo $1“, uvedení nadbytečných hranatých závorek v „tr -cd '[a-zA-Z0-9]'“.

Dále se podporuje výstup doporučení pro zlepšení stylu kódu, odstranění problémů s přenositelností a zvýšení spolehlivosti skriptů. Například, místo „echo $[1+2]“ bude navrženo použít syntaxi „$((..))“, konstrukce ‘rm -rf „$STEAMROOT/“*’ bude označena jako nebezpečná a schopná odstranit kořenový adresář, pokud není proměnná $STEAMROOT nastavena, a používání „echo {1..10}“ bude zvýrazněno jako nekompatibilní s dash a sh.

V nové verzi:

  • Bylo přidáno varování pro výrazy typu ‘local readonly foo’.
  • Bylo přidáno varování o nedostupnosti příkazů.
  • Bylo přidáno varování o zpětných odkazech v ‘declare x=1 y=$x’.
  • Bylo přidáno varování, pokud se $? používá k vydání návratového kódu echo, printf, [ ], [[ ]] a test.
  • Bylo přidáno doporučení pro odstranění ((..))inarray[((idx))]=val.
  • Bylo přidáno doporučení pro spojení dvojitých závorek v aritmetických kontextech.
  • Byla přidána doporučení na odstranění kulatých závorek ve výrazu a[(x+1)]=val.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster