انجمنهای فارسی اوبونتو
کمک و پشتیبانی => برنامهسازی => نویسنده: learner:~$ در 04 امرداد 1402، 04:56 بظ
-
سلام.
از اونجایی زبان های برنامه نویسی (۹۹ درصدشون) کتابخانه دارند خواستم بپرسم ایا برای بش هم کتابخانه وجود داره؟؟
اگه هست ممنون میشم داکیونت بهم بدید.
سوال دیگه ایی هم که دارم اینکه چطور خودمون میتونم تو بش کتابخانه درست کنیم؟ :)
-
نه. بش زبان اسکریپت نویسیه نه برنامه نویسی.
-
خب اگر خودم بخوام کتابخانه درست کنم باید چیکار کنم؟؟؟
خب LUA هم یک زبام اسکریپتی هست ??? ولی قطعا کتابخانه داره
-
در بش ما ابزار داریم.
شما هم تا حد امکان باید از ابزار های استاندارد استفاده بشه.
زبان های اسکریپتی انواع کار های مختلفی رو در حوضه های مختلفی انجام میدن. حوضه ها شونم فرق میکنه.
این محیطها میتوانند توسط اسکریپتها خودکارسازی شوند:
برنامه کاربردی نرمافزاری
صفحات وب در یک مرورگر
استفاده از پوستههای سیستمعامل (OS)
سیستمهای توکار
و همچنین انواع بازیها.
-
میخوام برای الان یک کتاب خانه ساده بنویسم ( شاید هم یک برنامه ساده ) که مثلا بازه عدد[۳و۵) به صورت هندسی نشون بده. بعدش کم کم بیام کتابخانه های دیگری رو هم بنویسم .
فکر کنم به عنوان یک سرگرمی جالب باشه :)
-
فکر کنم چیزی که مینویسی رو باید بذاری داخل دایرکتوری bin. احتمالا باید بخوندش. تا حالا امتحان نکردم.
-
فکر کنم چیزی که مینویسی رو باید بذاری داخل دایرکتوری bin. احتمالا باید بخوندش. تا حالا امتحان نکردم.
امتحان کردم اونطوری فقط اسکلت برنامه رو ساختی خود کتابخونه رو چیکار کنم؟؟
باید لینکش کنم به برنامه اصلی؟؟
بزارید واضح تر بگم
میخوام یک کتابخون بنویسم که بازه عدید مورد نظر من رو مشخض کنه
بعدش هروقت دلم خواست یک برنامه بنویسم که داخل اون برنامه از اون کتابخونه استفاده کنم .
-
اصلاً بش چیزی به نام کتابخونه نداره. شما تموم چیزهایی که در یک اسکریپت بش مینویسید، همون «دستوراتی» هستند که در ترمینال اجرا میکنید. برای مثال نوشتن ls و if چه در اسکریپت بش و چه در ترمینال هیچ تفاوتی نداره.
چیزی که شما باید دنبالش باشید، نوشتن یک برنامۀ تحت cli است که با اکثر زبانها میتونه ساخته بشه. بعدش فایل خروجی رو میتونید داخل PATH قرار بدید. (usr/local/bin/ پیشنهاد میشه)
-
خب اگه تو لینوکس ما کتابخانه نداریم پس من میخوام اولین کتابخونه رو بنویسم.
lib lib32 lib64 libexec libx32
خب این دارکتوری هایی که در usr وجود دارند چی؟؟؟
-
فکر کنم باید اسکرپپ رو بنویسی، بعدش تو هر اسکریپ دیگه اون چیزی که از اسکریپ اولت میخواهی را با source ایمپورت کنی. بعدش اگر تو ترمینال اسکریپ دوم را اجرا کنی، چیزی را که از اسکریپ اول ایمپورت کردی میتونی اجرا کنی. در کل فکر کنم خیلی کار جالبی نباشه.
-
چرا برای بش کتابخانه نداریم؟ همون دایرکتوری lib هم تو bin و sbin استفاده میشوند دیگه. اینکه چرا مثل پایتون کتابخانه برای بش نمینویسند برای اینکه اصلا نیاز نیست. مگه با بش میخوایم چی کاری کنیم؟
به شما هم پیشنهاد میکنم وقتت رو صرف کاری کنی که حداقل اگر به نتیجه رسید به کار چند نفر دیگر هم بیاد. اون چیزی که میخوای توی bash انجام بدی بهتر است تو خود پکیج اصلی انجام بدی و بعدش بیای تو بش یک دستور ساده برایش تعریف کنی، نه اینکه بیای تو خود بش محاسبات ناسایی یا اصطلاحا در حد لالیگا قرار بدی.
-
متاسفانه یا خوشبختانه حرف شما منطقه و قبول دارم.
خب ممیشه راهنمایی کنید تو کدوم پکیج بنویسم؟ .bashrc ? خیلی دلم میخوام یک کتاب خونه ( یا برنامه) بنویسم لطفا کامل راهنمایی کنید.
یا درمورد این موضوع داکیومنت بدبد :'( :'(
ادیت:
اهااا فهمیدممم؛اصلا یه چیز من میخوام یک برنامه با زبان سی بنویسم بعد بیام از طریق بش ورودی هایی که دارم رو به سی انتقال بدم و بعد بش بیاد خروجی بهم بده ( از طریق سی ) .
نمیدونم چطور توضیح بدم یک چیزی تو همین مایه ها میخوام ](*,) ](*,)
-
یک برنامه متنی مینویسی که رفتارش با آرگومان های خط فرمان کنترل شه. همین.
int main(int argc,char *argv[])
هروقتم که نیاز داشتی ازش استفاده کنی در اسکریپتت یا دستورت برای اون برنامه مسیر کاملو بده، مثلا
~/programme -e file
و دیگه نیازی به گذاشتن اون در bin/ نیست.(البته bin/ یک پوشه پر از لینک هایی هست که به
usr/bin/ اشاره میکنن.
-
هیچ کس نبود راهنمایی کنه؟؟
خب یقینا میشه با زبان سی یک برنامه نوشته که حکمه کتابخانه سیستمی رو داشته باشه و بش یا شل بتونه ازش استفاده کنه.
اما سوال ایینه که چطور میشه اینکار رو کرد!
-
کی گفته کتابخونه نداریم؟ مگه تا حالا با venv کار نکردین؟
بش حتماً کتابخونه داره و با دستور source میشه کتابخونهها رو وارد محیط کرد.