ShellCheck 0.9 கிடைக்கிறது, ஷெல் ஸ்கிரிப்டுகளுக்கான நிலையான பகுப்பாய்வி

ஷெல்செக் 0.9 திட்டத்தின் வெளியீடு வெளியிடப்பட்டது, ஷெல் ஸ்கிரிப்ட்களின் நிலையான பகுப்பாய்விற்கான ஒரு அமைப்பை உருவாக்குகிறது, இது பாஷ், sh, ksh மற்றும் டாஷ் ஆகியவற்றின் அம்சங்களை கணக்கில் எடுத்துக்கொண்டு ஸ்கிரிப்ட்களில் பிழைகளை அடையாளம் காண உதவுகிறது. திட்டக் குறியீடு Haskell இல் எழுதப்பட்டு GPLv3 உரிமத்தின் கீழ் விநியோகிக்கப்படுகிறது. Vim, Emacs, VSCode, Sublime, Atom மற்றும் GCC-இணக்கமான பிழை அறிக்கையிடலை ஆதரிக்கும் பல்வேறு கட்டமைப்புகளுடன் ஒருங்கிணைப்பதற்காக கூறுகள் வழங்கப்படுகின்றன.

ShellCheck 0.9 கிடைக்கிறது, ஷெல் ஸ்கிரிப்டுகளுக்கான நிலையான பகுப்பாய்வி

குறியீட்டில் உள்ள தொடரியல் பிழைகள் இரண்டையும் அடையாளம் காண்பதை இது ஆதரிக்கிறது, இது மொழிபெயர்ப்பாளர் செயல்படுத்தும் நேரத்தில் ஒரு பிழையைக் காண்பிக்க வழிவகுக்கிறது, மற்றும் சொற்பொருள் சிக்கல்கள், இதன் காரணமாக செயல்படுத்துவதில் இடையூறு ஏற்படாது, ஆனால் ஸ்கிரிப்ட்டின் நடத்தையில் முரண்பாடுகள் ஏற்படுகின்றன. பகுப்பாய்வி சில சூழ்நிலைகளில் தோல்விகளுக்கு வழிவகுக்கும் இடையூறுகள், வெளிப்படையான சிக்கல்கள் மற்றும் ஆபத்துக்களையும் அடையாளம் காண முடியும்.

கண்டறியப்பட்ட பிழைகளின் வகுப்புகளில், சிறப்பு எழுத்துக்களைத் தவிர்ப்பது மற்றும் மேற்கோள்களில் அவற்றை அமைப்பதில் உள்ள சிக்கல்கள், நிபந்தனை வெளிப்பாடுகளில் பிழைகள், கட்டளைகளின் தவறான பயன்பாடு, நேரம் மற்றும் தேதிகளைச் செயலாக்குவதில் சிக்கல்கள் மற்றும் ஆரம்பநிலைக்கான வழக்கமான தொடரியல் பிழைகள் ஆகியவற்றை நாம் கவனிக்கலாம். எடுத்துக்காட்டாக, “[[ $foo==0 ]]” ஐ ஒப்பிடும்போது இடைவெளிகள் இல்லாதது, “var = 42” இடைவெளிகள் இருப்பது அல்லது “$foo=42” ஐ ஒதுக்கும்போது $ குறியீட்டின் அறிகுறி, மாறிகளின் பயன்பாடு மேற்கோள்கள் இல்லாமல் “எக்கோ $1”, கூடுதல் சதுர அடைப்புக்குறிக்குள் "tr -cd '[a-zA-Z0-9]'",

கூடுதலாக, குறியீடு பாணியை மேம்படுத்துதல், பெயர்வுத்திறன் சிக்கல்களை நீக்குதல் மற்றும் ஸ்கிரிப்ட்களின் நம்பகத்தன்மையை அதிகரிப்பதற்கான பரிந்துரைகளின் வெளியீட்டை இது ஆதரிக்கிறது. எடுத்துக்காட்டாக, “எக்கோ $[1+2]” என்பதற்குப் பதிலாக “$((..))” என்ற தொடரியல் பயன்படுத்த பரிந்துரைக்கப்படும், கட்டுமானம் 'rm -rf “$STEAMROOT/”*' பாதுகாப்பற்றதாகக் குறிக்கப்படும். மற்றும் $STEAMROOT மாறியை நிரப்பவில்லை என்றால் ரூட் கோப்பகத்தை நீக்கும் திறன் கொண்டது, மேலும் "எக்கோ {1..10}" பயன்பாடு கோடு மற்றும் sh உடன் பொருந்தாது என முன்னிலைப்படுத்தப்படும்.

புதிய பதிப்பில்:

  • 'உள்ளூர் படிக்க மட்டும் foo' போன்ற வெளிப்பாடுகளுக்கு எச்சரிக்கை சேர்க்கப்பட்டது.
  • கிடைக்காத கட்டளைகள் பற்றிய எச்சரிக்கை சேர்க்கப்பட்டது.
  • 'x=1 y=$x' என அறிவிக்க, பின்னிணைப்புகள் பற்றிய எச்சரிக்கை சேர்க்கப்பட்டது.
  • $ என்றால் எச்சரிக்கை சேர்க்கப்பட்டது? எதிரொலி, printf, [], [[ ]] மற்றும் சோதனையின் திரும்பக் குறியீட்டை அச்சிடப் பயன்படுகிறது.
  • ((..))inarray[((idx))]=val ஐ அகற்ற பரிந்துரை சேர்க்கப்பட்டது.
  • எண்கணித சூழல்களில் இரட்டை அடைப்புக்குறிகளை இணைப்பதற்கான பரிந்துரை சேர்க்கப்பட்டது.
  • a[(x+1)]=val என்ற வெளிப்பாட்டில் அடைப்புக்குறிகளை அகற்ற பரிந்துரை சேர்க்கப்பட்டது.

ஆதாரம்: opennet.ru

கருத்தைச் சேர்