ShellCheck 0.9 yog muaj, tus ntsuas zoo li qub rau cov ntawv plhaub

Qhov kev tso tawm ntawm ShellCheck 0.9 qhov project tau raug luam tawm, txhim kho cov txheej txheem rau kev soj ntsuam zoo li qub ntawm cov ntawv plhaub uas txhawb kev txheeb xyuas qhov yuam kev hauv cov ntawv sau rau hauv tus account cov yam ntxwv ntawm bash, sh, ksh thiab khiav ceev. Txoj haujlwm code yog sau rau hauv Haskell thiab muab faib raws li GPLv3 daim ntawv tso cai. Cov Cheebtsam yog muab rau kev koom ua ke nrog Vim, Emacs, VSCode, Sublime, Atom, thiab ntau yam kev ua haujlwm uas txhawb nqa GCC-tshaj qhia qhov yuam kev.

ShellCheck 0.9 yog muaj, tus ntsuas zoo li qub rau cov ntawv plhaub

Nws txhawb kev txheeb xyuas ob qho tib si syntax yuam kev hauv cov cai, uas ua rau tus neeg txhais lus qhia qhov yuam kev thaum lub sijhawm ua tiav, thiab cov teeb meem semantic, vim tias qhov kev ua tiav tsis cuam tshuam, tab sis qhov tsis zoo ntawm tus cwj pwm ntawm tsab ntawv tshwm sim. Lub ntsuas ntsuas kuj tseem tuaj yeem txheeb xyuas cov kev tsis sib haum xeeb, cov teeb meem tsis pom tseeb thiab qhov pitfalls uas tuaj yeem ua rau tsis ua tiav hauv qee qhov xwm txheej.

Ntawm cov chav kawm ntawm kev kuaj pom qhov tsis raug, peb tuaj yeem nco ntsoov cov teeb meem nrog kev khiav tawm cov cim tshwj xeeb thiab ua rau lawv nyob rau hauv cov lus hais, qhov tsis raug hauv cov lus qhia, kev siv tsis raug ntawm cov lus txib, teeb meem ua lub sijhawm thiab hnub tim, thiab cov syntax raug rau cov neeg pib tshiab. Piv txwv li, qhov tsis muaj qhov chaw thaum muab piv "[[ $foo== 0 ]] ", muaj qhov chaw "var = 42" lossis qhov taw qhia ntawm $ cim thaum muab "$ foo = 42", kev siv cov hloov pauv. tsis muaj quotes "echo $1", qhov taw qhia ntawm ntxiv square brackets hauv "tr -cd '[a-zA-Z0-9]'",

Tsis tas li ntawd, nws txhawb nqa cov lus pom zoo rau kev txhim kho code style, tshem tawm cov teeb meem kev txav mus los, thiab ua kom muaj kev ntseeg siab ntawm cov ntawv sau. Piv txwv li, es tsis txhob "echo $[1+2]" nws yuav raug thov kom siv cov syntax "$((..))", kev tsim kho 'rm -rf "$ STEAMROOT/"*' yuav raug cim tias tsis muaj kev nyab xeeb. thiab muaj peev xwm tshem tawm cov ntaub ntawv hauv paus yog tias qhov hloov pauv tsis tau sau $STEAMROOT, thiab kev siv "echo {1..10}" yuav raug qhia tias tsis sib haum nrog dash thiab sh.

Hauv qhov tshiab version:

  • Ntxiv lus ceeb toom rau cov kab lus xws li 'loj readonly foo'.
  • Ntxiv lus ceeb toom txog cov lus txib uas tsis muaj.
  • Ntxiv cov lus ceeb toom txog backlinks rau 'tshaj x = 1 y = $ x'.
  • Ntxiv ceeb toom yog $? siv los luam cov lej xa rov qab ntawm ncha, printf, [ ], [[ ]] thiab xeem.
  • Ntxiv kev pom zoo kom tshem tawm ((..))inarray[((idx))] = val.
  • Ntxiv cov lus pom zoo rau concatenating ob lub parentheses hauv cov ntsiab lus lej.
  • Ntxiv cov lus pom zoo kom tshem tawm cov kab lus hauv kab lus a[(x+1)] = val.

Tau qhov twg los: opennet.ru

Ntxiv ib saib