انجمن‌های فارسی اوبونتو

کمک و پشتیبانی => انجمن عمومی => نویسنده: rahimi12 در 05 فروردین 1396، 10:12 ب‌ظ

عنوان: اجرای اسکریپتم
ارسال شده توسط: rahimi12 در 05 فروردین 1396، 10:12 ب‌ظ
سلام دوستم به من یک اسکریپت داده گفته کامپایل کردم و فایل اجرایی گرفتم. یه اسکرین هم دادش گفتش که توی اوبونتو اجرا میشه. اما من در سیستم دیگم که کالی 2016 است اجرا میکنم میگه همچین فایلی در دایرکتوری نیست.
شگفتاااااا
روی اوبونتو اجرا کردم خوب کار میکرد. دقیقا درشت اجرا میکنما نگین دایرکتوری اجرای دستورم غلطه.
کرنل کالی 4.8 و کرنل اوبونتوم 4.4 هست
اشکال از چیه
عنوان: پاسخ : اجرای اسکریپتم
ارسال شده توسط: Geek در 05 فروردین 1396، 10:19 ب‌ظ
سلام دوستم به من یک اسکریپت داده گفته کامپایل کردم و فایل اجرایی گرفتم. یه اسکرین هم دادش گفتش که توی اوبونتو اجرا میشه. اما من در سیستم دیگم که کالی 2016 است اجرا میکنم میگه همچین فایلی در دایرکتوری نیست.
شگفتاااااا
روی اوبونتو اجرا کردم خوب کار میکرد. دقیقا درشت اجرا میکنما نگین دایرکتوری اجرای دستورم غلطه.
کرنل کالی 4.8 و کرنل اوبونتوم 4.4 هست
اشکال از چیه

یه بار دیگه متن پرسش رو بخون ببین خودت چیزی ازش سر در میاری؟
من که نفهمیدم پرسش شما چی هست!
با جزئیات و واضح پرسشتون رو مطرح کنید.
عنوان: پاسخ : اجرای اسکریپتم
ارسال شده توسط: rahimi12 در 05 فروردین 1396، 10:57 ب‌ظ
ببخشید.
خلاصه کلامم اینه که یک فایل executable دارم که توی اوبونتو اجرا میشه ولی توی کالی 2016 اجرا نمیشه.
در کالی اجرا بکنم ارور میگه میگه همچین فایلی وجود نداره در حالیکه وجود داره.

توضیحات کرنل و ... هم در اول موضوع گفتم
عنوان: پاسخ : اجرای اسکریپتم
ارسال شده توسط: علی رزم دیده در 05 فروردین 1396، 11:09 ب‌ظ
اون دوست عزیزمون هم گفتن متاسفانه خیلی مختصر و مفید می نویسین این طوری فایده نداره مثلا بنویسین چطوری اجراش می کنین ؟
با کدوم یکی از این دستورا ؟
sudo sh script.sh
sudo bash script.sh
sudo ./script.sh
اگه از دستور سوم استفاده می کنین دستور اول و دوم رو هم تست کنین بعد نتیجه رو اعلام کنین
ویرایش :این رو هم اضافه کنم که دسترسی اجرایی رو از قبل به فایل دادین یا نه ؟
chmod +x script.sh
عنوان: پاسخ : اجرای اسکریپتم
ارسال شده توسط: rahimi12 در 05 فروردین 1396، 11:24 ب‌ظ
اسم فایلم riyaz است

chmod +x riyaz
riyaz/.

در اوبونتو اجرا میشه در کالی میگه

No such file or directory

کرنل اوبونتو 4.4 و کرنل کالی 4.8

از این واضح تر دیگه نمیدونم چی بگم
عنوان: پاسخ : اجرای اسکریپتم
ارسال شده توسط: علی رزم دیده در 05 فروردین 1396، 11:48 ب‌ظ
خب الان واضح شد دیگه ; اولش اینا رو نگفته بودین که  :)
اون دستورات اول و دوم رو برای اجرای اسکریپت امتحان کنین و نتیجه رو بگین :
sudo sh script.sh
sudo bash script.sh
عنوان: پاسخ : اجرای اسکریپتم
ارسال شده توسط: Geek در 05 فروردین 1396، 11:50 ب‌ظ
به این توجه کردی که فایل با کامپایلر x86 کامپایل شده یا 64 بیتی؟
مثلا اگر این فایل روی یه سیستم x86 کامپایل شده باشه و شما تلاش کنی اونو روی یه سیستم 64 بیتی که از معماری 32 بیتی پشتیبانی نمیکنه اجرا کنی دچار مشکل میشی.
عنوان: پاسخ : اجرای اسکریپتم
ارسال شده توسط: rahimi12 در 06 فروردین 1396، 12:13 ق‌ظ
خب الان واضح شد دیگه ; اولش اینا رو نگفته بودین که  :)
اون دستورات اول و دوم رو برای اجرای اسکریپت امتحان کنین و نتیجه رو بگین :
sudo sh script.sh
sudo bash script.sh
برادر فایل اجرایی هست sh نیست که
عنوان: پاسخ : اجرای اسکریپتم
ارسال شده توسط: rahimi12 در 06 فروردین 1396، 12:17 ق‌ظ
به این توجه کردی که فایل با کامپایلر x86 کامپایل شده یا 64 بیتی؟
مثلا اگر این فایل روی یه سیستم x86 کامپایل شده باشه و شما تلاش کنی اونو روی یه سیستم 64 بیتی که از معماری 32 بیتی پشتیبانی نمیکنه اجرا کنی دچار مشکل میشی.
کالی ۶۴ بیتی است و اوبونتو ۳۲ بیت. توی اوبونتو کامپایل کردم. پس از اونه؟
آخه توی کالی که ۶۴ بیتی است هم با shc یک سورس بش رو کامپایل میکنم اجرا نمیشه(شیوه کارم درسته). حتی توی خودشم اجرا نمیشه و طبیعتا باید اجرا بشه خب مگ نه؟
توی اوبونتو این مشکل نیست.
نظرتون چی است؟
عنوان: پاسخ : اجرای اسکریپتم
ارسال شده توسط: علی رزم دیده در 06 فروردین 1396، 12:32 ق‌ظ
خب الان واضح شد دیگه ; اولش اینا رو نگفته بودین که  :)
اون دستورات اول و دوم رو برای اجرای اسکریپت امتحان کنین و نتیجه رو بگین :
sudo sh script.sh
sudo bash script.sh
برادر فایل اجرایی هست sh نیست که
مگه نمی گین اسکریپته ؟ خب با همون ران کنین دیگه !
بذارین خیلی ساده و خودمونی توضیح بدم شاید مشکل از توضیحه منه نیگاه کنین اول خیلی از اسکریپتا shebang (دستوراتی عینه #!/bin/sh و یا #!/bin/bash) وجود داره که در واقع برنامه نویس میگه این اسکریپت (حالا با پسوند .sh یا .run یا حتی بدون پسوند) برای این شل بهینه شده و بهتره (و بعضا لازمه) که با اون شل خاص اجرا بشه و حتی بعضی از شل ها وقتی می بینن که این فایل با shebang مخصوص اونا نیست اون فایل اجرایی رو (حتی وقتی دسترسی execute داره) اجرا نمی کنن و با خطاهای مختلفی مثل command not found یا not such file or directory و ... از اجرای فایل اجرایی ممنانعت به عمل میارن برای همین گفتم که با sh (که اگه اشتباه نکنم برای شل dash هستش) و یا با bash (که مربوط به شل bash هستش) اجرا کنید تا ببینم مشکل از shebang هست یا نه ؟
ممکنه مشکل حتی ناشی از این باشه که encode نوشتاری فایل مناسب اون شل نباشه (مثلا ممکنه که utf-8 نباشه و ...) پس اگه شما دوست دارین مشکلتون حل بشه لطفاً کاری که گفته می شه رو تست کنین تا ما هم بتونیم راحت تر کمک کنیم  ;)
(برای مثال عرض می کنم من موقع اجرای فایل اجرایی matlab رو که به قول شما sh هم نبود نتونستم با ./matlab اجرا کنم ولی به راحتی با bash matlab اجرا شد حال خود دانی !)
عنوان: پاسخ : اجرای اسکریپتم
ارسال شده توسط: Geek در 06 فروردین 1396، 12:43 ق‌ظ
نقل‌قول
کالی ۶۴ بیتی است و اوبونتو ۳۲ بیت. توی اوبونتو کامپایل کردم. پس از اونه؟

بله.
اینو مطالعه کن تا برات روشن‌تر بشه:

http://askubuntu.com/questions/133389/no-such-file-or-directory-but-the-file-exists

نقل‌قول
آخه توی کالی که ۶۴ بیتی است هم با shc یک سورس بش رو کامپایل میکنم اجرا نمیشه(شیوه کارم درسته). حتی توی خودشم اجرا نمیشه و طبیعتا باید اجرا بشه خب مگ نه؟
توی اوبونتو این مشکل نیست.
نظرتون چی است؟

نظری ندارم.