شیل چیک 0.9 دستیاب ہے، شیل اسکرپٹس کے لیے ایک جامد تجزیہ کار

ShellCheck 0.9 پروجیکٹ کا اجراء شائع کیا گیا ہے، شیل اسکرپٹس کے جامد تجزیہ کے لیے ایک ایسا نظام تیار کیا گیا ہے جو bash، sh، ksh اور dash کی خصوصیات کو مدنظر رکھتے ہوئے اسکرپٹ میں غلطیوں کی نشاندہی کرنے میں مدد کرتا ہے۔ پروجیکٹ کوڈ ہاسکل میں لکھا گیا ہے اور GPLv3 لائسنس کے تحت تقسیم کیا گیا ہے۔ Vim، Emacs، VSCode، Sublime، Atom، اور مختلف فریم ورکس کے ساتھ انضمام کے لیے اجزاء فراہم کیے گئے ہیں جو GCC سے مطابقت رکھنے والی غلطی کی رپورٹنگ کو سپورٹ کرتے ہیں۔

شیل چیک 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}" کا استعمال ڈیش اور sh کے ساتھ غیر مطابقت کے طور پر نمایاں کیا جائے گا۔

نئے ورژن میں:

  • 'لوکل ریڈ اونلی فو' جیسے تاثرات کے لیے انتباہ شامل کیا گیا۔
  • غیر دستیاب کمانڈز کے بارے میں انتباہ شامل کیا گیا۔
  • 'declare x=1 y=$x' میں بیک لنکس کے بارے میں وارننگ شامل کی گئی۔
  • انتباہ شامل کیا گیا اگر $؟ echo، printf، [ ]، [[ ]] اور ٹیسٹ کے ریٹرن کوڈ کو پرنٹ کرنے کے لیے استعمال کیا جاتا ہے۔
  • ((..))inarray[((idx))]=val کو ہٹانے کی سفارش شامل کی گئی۔
  • ریاضی کے سیاق و سباق میں ڈبل قوسین کو جوڑنے کے لیے ایک سفارش شامل کی گئی۔
  • اظہار a[(x+1)]=val میں قوسین کو ہٹانے کے لیے ایک تجویز شامل کی گئی۔

ماخذ: opennet.ru

نیا تبصرہ شامل کریں