python app.py -l *OR* python app.py --list
## سوویچ هایی که ورودی دارن ##python app.py -s bike *OR* python app.py --show bike
python app.py randomize
python app.py play song.mp3
python manage.py runserver 8000
## ورودی هایی که با علامت مساوی وارد میشن(مثل دستور dd ) ##python app.py color=red shape=cube
dd bs=4M if=/path/to/input of=/path/to/output
دوست دارم بدونم چجوری میشه وقتی یه برنامه پایتون که خودم نوشتم، موقع اجرا کردنش توی ترمینال بهش ورودی بدم. انواع مختلف ورودی که با مثال میگم همشو.لیست sys.argv شامل چیزهایی هست که از طریق خط فرمان به برنامه داده شده. میتونید با خوندن اون، به این اطلاعات دست پیدا کنید. sys.orig_argv خود چیزهایی هست که از خط فرمان به برنامه داده شده، بدون اینکه اول، توسط خود پایتون پردازش بشه.
## سوییچ های کوتاه و بلند که هردو یک کار رو انجام میدن و ورودی ندارن ##کد: [انتخاب]python app.py -l *OR* python app.py --list
## سوویچ هایی که ورودی دارن ##کد: [انتخاب]python app.py -s bike *OR* python app.py --show bike
## ورودی مستقیم (مثل جنگو) ##کد: [انتخاب]python app.py randomize
python app.py play song.mp3
python manage.py runserver 8000
اگه یه روش خاص باشه که بشه همه این موارد رو باهاش پیاده کرد خیلی خوب میشه.
## ورودی هایی که با علامت مساوی وارد میشن(مثل دستور dd ) ##فکر کنم این رو باید خودتون از طریق خوندن sys.argv مدیریت کنید.کد: [انتخاب]python app.py color=red shape=cube
dd bs=4M if=/path/to/input of=/path/to/output
ضمنا میخوام جوری باشه که توی ترمینال autocomplete بتونه سوییچ ها و گزینه هارو تشخیص بده.باید برای برنامهتون، اسکریپت completion ایجاد کنید تا bash از اون استفاده کنه. اسکریپت completion، یه اسکریپت به زبان bash هست. دستور complete مرتبط هست.
بزرگواران ، منم همین روزا میخواستم دقیقا همین سوالا رو بپرسم درباره اسکریپت های بش ! ممنون میشم در کنار پرسش های این دوستمون مال بش رو هم ذکر کنین که الکی یه تاپیک دیگه نزنم ، اگر هم فک میکنید اونجوری درست تره که چشم !چیزهایی که از طریق خط فرمان داده شده رو که میدونید چجوری بگیرید.
( البته من برای بش ، سوییچ تک حرفی رو بلدم )
چیزهایی که از طریق خط فرمان داده شده رو که میدونید چجوری بگیرید.بله ، البته در کل در حد دروه جناب امیر صمیمی میدونم و بس !
از تابع getopt که همراه libc هست برای اینکار استفاده میکنهاز تابع libc چیزی نمیدونم ، خیلی هم توی راهنمایی هاتون به دوستان دربارش گفتین که مثلا ( ممکنه مشکل از libc باشه ) یا ( جایگزینش glibc هست ) و فلان و فلان ! حالا سرچ میکنم دربارش !
باید برای برنامهتون، اسکریپت completion ایجاد کنید تا bash از اون استفاده کنه. اسکریپت completion، یه اسکریپت به زبان bash هست. دستور complete مرتبط هست.
پیشنهاد میکنم در پایتون از Click برای CLI استفاده کنید.https://dev.to/drcloudycoder/develop-python-cli-with-subcommands-using-click-4892
میشه یه لینک بدید براش؟ من چیز بدرد بخوری پیدا نکردم.بهتره اول اسکریپت نویسی با bash رو یاد بگیرید. زیاد هم سخت نیست.