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

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

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, [ ], [[ ]] ප්‍රතිලාභ කේතය මුද්‍රණය කිරීමට සහ පරීක්ෂා කිරීමට භාවිතා කරයි.
  • ((..))inarray[((idx))]=val ඉවත් කිරීමට නිර්දේශය එක් කරන ලදී.
  • අංක ගණිත සන්දර්භයන් තුළ ද්විත්ව වරහන් ඒකාබද්ධ කිරීම සඳහා නිර්දේශයක් එක් කරන ලදී.
  • a[(x+1)]=val ප්‍රකාශනයේ වරහන් ඉවත් කිරීමට නිර්දේශයක් එක් කරන ලදී.

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

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