سؤال

هذا ما لدي حتى الآن - صندوق الإسقاط الخاص بي عام عنوان URL برنامج نصي لإنشاء دليل عناوين URL العامة (getdropbox.com - جي بي إل على ما أعتقد).لي LIST تم إنشاء الملف باستخدام ls بالطريقة التالية:

ls -d ~/Dropbox/Public/PUBLICFILES/* > LIST

Dropboxpuburl.sh:

for PATH in `cat LIST`
do
   echo $PATH
   dropbox puburl $PATH > ~/URLLIST/$PATH
done

يؤدي هذا الآن إلى إنشاء سلسلة كاملة من الملفات - يحتوي كل منها على عنوان صندوق الإسقاط بداخلها.

السؤال هو:كيف يمكنني أن أجعل هذا البرنامج النصي يعيد توجيه جميع الروابط العامة إلى ملف نصي واحد، كل منها في سطر جديد - ربما بالاسم قائمة الدليل العامة?

هل كانت مفيدة؟

المحلول

هل هذا ما تحاول تحقيقه؟

for PATH in `cat LIST`
   do
      echo $PATH
      dropbox puburl $PATH >> filename
   done

نصائح أخرى

حسنًا، لقد نجحت في العمل باستخدام الاقتراحات المقدمة لي هنا:

for PATH in `cat LIST`
do
    echo $PATH
    dropbox puburl $PATH
done > PUBLIC-DIRECTORY-LIST

يقوم بإنشاء قائمة بالأدلة، وتحتها الرابط العام.لقد حان الوقت الآن لتقليص الدلائل للحصول على ملف نصي نظيف من الروابط.

يقوم => بإنشاء الملفات وإضافة شيء ما إلى السطر الأول.>> يُلحق به في سطر جديد.

echo txt=>PUBLIC-DIRECTORY-LIST.txt |
echo another text>>PUBLIC-DIRECTORY-LIST.txt 

يجب عليك استخدام while read مع إعادة توجيه الإدخال بدلاً من for مع cat filename.أيضًا، من أجل تجنب تعارضات أسماء المتغيرات، قمت بتغيير متغير المسار الخاص بك إلى أحرف صغيرة نظرًا لأن الصدفة تستخدم الحروف الكبيرة بالفعل.لن يؤثر ذلك على غلافك التفاعلي، ولكنه قد يؤثر على شيء ما في البرنامج النصي الخاص بك.

أيضًا، بافتراض أنك تريد عرض الأسطر من ملف الإدخال الخاص بك على الشاشة كمؤشر للتقدم، ولكن لا يتم التقاطها في ملف الإخراج الخاص بك، فإن هذا echo يرسله إلى stderr.

while read path
do
    echo $path >&2
    dropbox puburl $path
done < LIST > PUBLIC-DIRECTORY-LIST
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top