ShellCheck 0.9 පවතී, shell scripts සඳහා ස්ථිතික විශ්ලේෂකය

ShellCheck 0.9 නිකුත් කර ඇත. එය bash, sh, ksh සහ dash වල නිශ්චිත ලක්ෂණ සැලකිල්ලට ගනිමින්, ස්ක්‍රිප්ට් වල දෝෂ හඳුනාගැනීම සඳහා සහාය වන ෂෙල් ස්ක්‍රිප්ට් සඳහා ස්ථිතික විශ්ලේෂණ පද්ධතියක් සංවර්ධනය කරයි. ව්‍යාපෘතියේ කේතය Haskell භාෂාවෙන් ලියා ඇති අතර GPLv3 බලපත්‍රය යටතේ බෙදා හරිනු ලැබේ. GCC-අනුකූල දෝෂ වාර්තාකරණයට සහාය වන Vim, Emacs, VSCode, Sublime, Atom සහ විවිධ IDE සමඟ ඒකාබද්ධ කිරීම සඳහා සංරචක සපයනු ලැබේ.

 ShellCheck 0.9 පවතී, shell scripts සඳහා ස්ථිතික විශ්ලේෂකය

විශ්ලේෂකය, ධාවන වේලාවේදී පරිවර්තකයා දෝෂයක් ප්‍රතිදානය කිරීමට හේතු වන වාක්‍ය ඛණ්ඩ දෝෂ සහ ක්‍රියාත්මක කිරීමට බාධා නොකරන නමුත් ස්ක්‍රිප්ට් හැසිරීම් වල විෂමතා ඇති කරන අර්ථකථන ගැටළු යන දෙකම හඳුනා ගැනීමට සහාය වේ. විශ්ලේෂකයට යම් යම් තත්වයන් යටතේ බිඳ වැටීම් වලට තුඩු දිය හැකි බාධක, සියුම් ගැටළු සහ අන්තරායන් ද හඳුනාගත හැකිය.

හඳුනාගත හැකි දෝෂ කාණ්ඩ අතරට විශේෂ අක්ෂර ගැලවී යාම සහ උපුටා දැක්වීමේ ගැටළු, කොන්දේසි සහිත ප්‍රකාශනවල දෝෂ, වැරදි විධාන භාවිතය, කාලය සහ දිනයන් හැසිරවීමේ ගැටළු සහ ආරම්භකයින්ගේ සාමාන්‍ය වාක්‍ය ඛණ්ඩ දෝෂ ඇතුළත් වේ. උදාහරණයක් ලෙස, "[[ $foo==0 ]] සංසන්දනය කිරීමේදී හිස්තැන් නොමැති වීම, "var = 42" හි හිස්තැන් තිබීම හෝ "$foo=42" පැවරීමේදී $ සංකේතය නියම කිරීම, "echo $1" උපුටා දැක්වීම් නොමැතිව විචල්‍ය භාවිතා කිරීම, "tr -cd '[a-zA-Z0-9]'" හි අනවශ්‍ය වර්ග වරහන් නියම කිරීම,

ඊට අමතරව, කේත විලාසය වැඩිදියුණු කිරීම, අතේ ගෙන යා හැකි ගැටළු ඉවත් කිරීම සහ ස්ක්‍රිප්ට් විශ්වසනීයත්වය වැඩි කිරීම සඳහා නිර්දේශ සඳහා සහය දක්වයි. උදාහරණයක් ලෙස, "echo $[1+2]" වෙනුවට, "$((..))" යන වාක්‍ය ඛණ්ඩය යෝජනා කරනු ලැබේ; 'rm -rf "$STEAMROOT/"*' ගොඩනැගීම අනාරක්ෂිත ලෙස සලකුණු කරනු ලබන අතර $STEAMROOT විචල්‍යය හිස් නම් මූල නාමාවලිය මකා දැමිය හැකිය; සහ "echo {1..10}" භාවිතය dash සහ sh සමඟ නොගැලපෙන ලෙස සලකුණු කරනු ලැබේ.

නව අනුවාදයේ:

  • 'දේශීය කියවීමට පමණයි foo' වැනි ප්‍රකාශන සඳහා අනතුරු ඇඟවීමක් එක් කරන ලදී.
  • විධාන නොමැති වීම පිළිබඳ අනතුරු ඇඟවීමක් එක් කරන ලදී.
  • 'x=1 y=$x ප්‍රකාශ කරන්න' තුළ පසු යොමු කිරීම් පිළිබඳ අනතුරු ඇඟවීමක් එක් කරන ලදී.
  • echo, printf, [ ], [[ ]] සහ test යන return code ආපසු ලබා දීමට $? භාවිතා කරන්නේ නම් අනතුරු ඇඟවීමක් එක් කරන ලදී.
  • ((..))inarray[((idx))]=val ඉවත් කිරීමට නිර්දේශයක් එකතු කරන ලදී.
  • අංක ගණිත සන්දර්භයන් තුළ ද්විත්ව වරහන් ඒකාබද්ධ කිරීම සඳහා නිර්දේශයක් එකතු කරන ලදී.
  • a[(x+1)]=val ප්‍රකාශනයේ වරහන් ඉවත් කිරීමට නිර්දේශයක් එක් කරන ලදී.

මූලාශ්රය: opennet.ru

අදහස් එක් කරන්න