المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : استفسار عن كتابة shell



محب فلسطين
18-12-2010, 12:08
شباب انا بلشت اعمل سكربت ل شيل من نوع يونكس

عندي بعض الأستفسارات من اصحاب الخبرة

لما اكتب الشيل في ويندوز عن طريق النوت باد و انقل الشيل الى نظام لينكس تحدث اخطاء في شيل.....:confused:
غريب جداً

لما اكتب نفس شيل في لينكس الشل شغال تمام التمام :rolleyes:

كذالك الحال لما اقوم بعمل cut او baste لبعض الكودات تحدث الأخطاء لما تكون في وندوز و العكس صحيح
في نضام لينكس

حسب معلوماتي ان برنامج notepad يصلح للكتابة منه و القراءة في اي نضام من غير اي مشاكل
لكن لا اعلم لماذا تحدث الأخطاء عندما تكون الكتابة و العمل في وندوز


ياريت احد يوضح لي الأمور وأكون شاكر له

phplockit
18-12-2010, 13:15
ايه هي الاخطاء اخي الي بتظهرلك؟
وياريت توريني الكود ارسله على الخاص اشوفه

محب فلسطين
18-12-2010, 14:05
الف شكر على التجاوب phplockit (https://www.arabhardware.net/forum/member.php?u=11205827)





echo "The hci adapter? (e.g. hci0
read no
echo "Client mac you want to connect with
read macc
echo ftp channel
read chnn
btftp -i $no $macc $chnn



هذا هو الكود للشل



اخر كود



btftp -i $no $macc $chnn


هو امر في برنامج btftp

انا استخدم توزيعة باك تراك 3 وهذه التوزيعة مدمج معها برنامج btftp


هذا الشل انا كتبته لتسهيل استخدام اوا مر البرنامج و كذالك لأني في طريق التعلم
لكتابة shell

هذا الشل نفسه نفسه لما اكتبه في وندوز عن طريق notpad ثم اقوم بنقله الى باك تراك
وأغير امتداده من txt الى sh يعمل لكن يخرج لي eror حينما يصل الى قراءة المتغير
read no
كذالك الحال للمتغير الثاني و الثالث

...................................

اكتب نفس الكودات فس برنامج txt مدمج مع التوزيعة ( (اقصد كتابة الشل في نضام لينكس نفسه)) ثم اقوم بتغير الأمتداد من txt ألى sh والشل شغال 100%

محب فلسطين
18-12-2010, 14:10
هذه المشكلة مزعجة
وذالك اني استخدم وندوز اغلب الأوقات واحتاج الطريقة الصحيحة لكتابة الشل
في وندوز ونقله للأستخدام في لينكس من غير اي مشاكل

محب فلسطين
19-12-2010, 06:21
تم حل المشكلة من مندى مجمع لينكس مع الشكر للعضو راني





اولا: لا تكتب الشل الا في لينيكس للسهولة.

السبب: علامة نهاية السطر في ويندوز مختلفة عن لينيكس او ماك او اي يونيكس آخر. هناك اداة على السطرمر تعمل اسمها dos2unix و اختها unix2dos . كل واحدة منها تظبط لك علامة نهاية السطر في الملف النصي حسب النظام الهدف. اسم الحزمة هي dos2unix .

و حسب الشرح داخل الحزمة:
نظام DOS يفهم نهاية السطر عند CR-LF اي Cursor Return (رجع اشارة الكتابة الى اول السطر من دون فتح سطر جديد) ثم Line Feed ( انزل الى سطر جديد).
نظام Unix يفهم نهاية السطر عند LF فقط.
انظمة Mac القديمة تفهم نهاية السطر عند CR فقط.

geekgirl
25-12-2010, 21:23
للمستقبل:

أسهل من كل ذلك، إستخدم برنامج Notepad++ فضلاً عن الـ Notepad في ويندوز

https://notepad-plus-plus.org/download

و من قائمة Edit
أشر بالفأرة على قائمة EOL Conversion (و EOL إختصار End Of Line أي نهاية السطر)
و انقر UNIX Format بدلاً من Windows Format قبل حفظ الملف أو ال script الذي سترفعه لاحقاً لللينكس :)

eng_moh321
26-12-2010, 12:15
To convert a Windows file to Linux file, use tr to remove the carriage return
tr -d '\r' Windows_file LINuX_file

k@spersky
27-12-2010, 02:01
أخي الكريم
على حد علمي أن نوتباد من أسوأ المحررات لعدم التوافقية كما جربت بنفسك وليس هنا مكان بسط أدلة ذلك ولكن يمكنك البحث عن عيوب نوتباد أمام عمالقة التحرير في لينكس ويونكس
ثانيا هل جربت استخدام محرر آخر مثل EMACS (https://www.gnu.org/software/emacs/windows/Getting-Emacs.html)أو EditPad أو (https://www.editpadpro.com/download.html)metapad (https://liquidninja.com/metapad/)
وغيرها كثير