ShellCheck 0.9 موجود آهي، شيل اسڪرپٽ لاء هڪ جامد تجزيه ڪندڙ

شيل چيڪ 0.9 پروجيڪٽ جو رليز شايع ڪيو ويو آهي، شيل اسڪرپٽ جي جامد تجزيي لاءِ هڪ سسٽم ٺاهي رهيو آهي جيڪو اسڪرپٽ ۾ غلطين جي نشاندهي ڪرڻ ۾ مدد ڪري ٿو bash، sh، ksh ۽ dash جي خاصيتن کي مدنظر رکندي. پروجيڪٽ ڪوڊ Haskell ۾ لکيل آهي ۽ GPLv3 لائسنس تحت ورهايو ويو آهي. اجزاء مهيا ڪيا ويا آهن انضمام لاءِ Vim، Emacs، VSCode، Sublime، Atom، ۽ مختلف فريم ورڪ جيڪي GCC-compatible error reporting جي حمايت ڪن ٿا.

ShellCheck 0.9 موجود آهي، شيل اسڪرپٽ لاء هڪ جامد تجزيه ڪندڙ

اهو ڪوڊ ۾ نحو جي ٻنهي غلطين جي نشاندهي ڪرڻ ۾ مدد ڪري ٿو، جنهن جي نتيجي ۾ مترجم کي عمل جي وقت غلطي ڏيکاري ٿي، ۽ سيمينٽڪ مسئلا، جنهن جي ڪري عمل ۾ رڪاوٽ نه آهي، پر رسم الخط جي رويي ۾ بي ضابطگيون ٿينديون آهن. تجزيه نگار به رڪاوٽن، غير واضح مسئلن ۽ نقصانن جي نشاندهي ڪري سگهي ٿو جيڪي ڪجهه حالتن ۾ ناڪامي جو سبب بڻجي سگهن ٿيون.

معلوم ٿيل غلطين جي طبقن ۾، اسان خاص اکرن کان بچڻ ۽ انهن کي حوالن ۾ فريم ڪرڻ، مشروط اظهار ۾ غلطيون، حڪمن جي غلط استعمال، پروسيسنگ وقت ۽ تاريخون، ۽ شروعات ڪندڙن لاءِ عام نحو جي غلطين کي نوٽ ڪري سگهون ٿا. مثال طور، اسپيس جي غير موجودگي جڏهن مقابلو ڪندي “[[$foo==0 ]]”، اسپيس جي موجودگي “var = 42” يا $ علامت جو اشارو جڏهن تفويض “$foo=42”، متغيرن جو استعمال اقتباس کان سواءِ “echo $1”، اشارو اضافي چورس بریکٹس ۾ "tr -cd '[a-zA-Z0-9]'",

اضافي طور تي، اهو ڪوڊ اسٽائل کي بهتر ڪرڻ، پورائيبلٽي مسئلن کي ختم ڪرڻ، ۽ اسڪرپٽ جي اعتماد کي وڌائڻ لاء سفارشن جي پيداوار جي حمايت ڪري ٿو. مثال طور، “echo $[1+2]” بدران ان کي نحو استعمال ڪرڻ جي تجويز ڏني ويندي “$((..))”، تعمير 'rm -rf “$STEAMROOT/”*' کي غير محفوظ طور نشان لڳايو ويندو ۽ روٽ ڊاريڪٽري کي ختم ڪرڻ جي قابل ٿي سگھي ٿو جيڪڏھن متغير نه ڀريو ويو $STEAMROOT، ۽ "echo {1..10}" جي استعمال کي نمايان ڪيو ويندو جيئن ڊيش ۽ ش سان مطابقت نه آھي.

نئين نسخي ۾:

  • شامل ڪيل ڊيڄاريندڙ اظهار لاءِ 'لوڪل صرف پڙهڻ لاءِ foo'.
  • شامل ڪيل ڊيڄاريندڙ غير دستياب حڪمن بابت.
  • شامل ڪيل ڊيڄاريندڙ پٺ لنڪ بابت 'declare x=1 y=$x'.
  • شامل ڪيل ڊيڄاريندڙ جيڪڏھن $؟ echo، printf، [ ]، [[ ]] ۽ ٽيسٽ جي موٽڻ واري ڪوڊ کي پرنٽ ڪرڻ لاءِ استعمال ڪيو ويو.
  • شامل ڪيل سفارش کي ختم ڪرڻ لاءِ ((..))inarray[((idx))]=val.
  • رياضي جي حوالي سان ڊبل قوسون گڏ ڪرڻ لاءِ سفارش شامل ڪئي وئي.
  • اک[(x+1)]=val ايڪسپريس ۾ قوس کي هٽائڻ لاءِ سفارش شامل ڪئي وئي.

جو ذريعو: opennet.ru

تبصرو شامل ڪريو