سؤال
لقد حاولت تشغيل نص Bash التالي على جهاز الكمبيوتر الخاص بي على الإنترنت (Nokia N810 يعمل على Maemo Linux). ومع ذلك ، لا يبدو أنه قيد التشغيل ، وليس لدي أدنى فكرة عن الخطأ في هذا البرنامج النصي (إنه يعمل على نظام Ubuntu الخاص بي إذا قمت بتغيير الدلائل). سيكون من الرائع تلقي بعض الملاحظات حول هذا أو تجارب مماثلة لهذه القضية. شكرًا.
WORKING="/home/user/.gpe"
SVNPATH="/media/mmc1/gpe/"
cp calendar categories contacts todo $WORKING
المحلول
ماذا يحدث بالفعل عند تشغيل البرنامج النصي الخاص بك؟ من المفيد إذا قمت بتضمين تفاصيل رسائل الخطأ أو السلوك الذي يختلف عن ما هو متوقع وبأي طريقة.
إذا كان العمل $ يحتوي على اسم الدليل ، مخفي أم لا ، ثم cp
يجب نسخ تلك الملفات الأربعة فيها. ثم ls -l /home/user/.gpe
يجب أن تظهر لهم بالإضافة إلى أي شيء آخر هناك ، بغض النظر عما إذا كان "مخفيًا".
بالمناسبة ، النقطة الأولية في ملف أو اسم الدليل لا "إخفاء" الإدخال ، إنه ذلك فقط ls
و echo *
والأوامر المماثلة لا تظهر لهم ، في حين أن هذه تفعل:
ls -la
ls -d .*
ls -d {.*,*}
echo .*
echo {.*,*}
نصائح أخرى
باش cp
أمر تستطيع انسخ مصادر متعددة إلى وجهة واحدة ، إذا كان دليلًا.
هل الدليل /home/user/.gpe
يوجد؟
ضع في اعتبارك أن النقطة الرائدة في الاسم يمكن أن تجعلها مختفي إلا إذا كنت تستخدم ls -a
جربت أوامرك في Cygwin:
لكني استخدمت .gpe
بدلاً من /home/user/.gpe
لقد فعلت ذلك ل touch calendar categories contacts todo
لإنشاء الملفات.
عملت بشكل جيد.
إذا كان هذا هو البرنامج النصي الخاص بك ، فهو مفقود. ثلاثة ، أشياء:
- أ كوخ الخط ، مثل
#!/bin/sh
في البداية - استخدام $ svnpath. ربما تريد ذلك
cd $SVNPATH
قبلcp
أمر. يجب ألا يفترض البرنامج النصي الخاص بك أن دليل العمل الحالي صحيح. - ربما تنفيذ الإذن على البرنامج النصي:
chmod a+x script
هل لديك بالفعل دليل/home/user/.gpe الحاضر؟ وأيضًا ، حاول إضافة معلمة -r بحيث يتم نسخ الدلائل بشكل متكرر.