كيف يمكنني التقاط إخراج أمر إلى واصف ملف في بورن شل؟

StackOverflow https://stackoverflow.com/questions/624520

  •  05-07-2019
  •  | 
  •  

سؤال

الطريقة القياسية لالتقاط إخراج الأوامر في Bourne Shell هي استخدام $() بناء الجملة:

output=$(mycommand)

بالنسبة للأوامر التي تحتوي على الكثير من الإخراج ، فإن هذا يتطلب تخصيص ذاكرة القذيفة لكل شيء كسلسلة طويلة. أفضل العثور على شيء يقوم بالمكافئ الأخلاقي لوظيفة UNIX C popen, ، للحصول على واصف ملف جديد يمكنني read من:

newfd=popen(mycommand)
while read -u $newfd LINE; do
  #process output
done

هل هذا ممكن؟

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

المحلول

#!bash
ls | while read X
do 
    echo  $X is a directory entry
done

استبدل "LS" بأمر من اختيارك

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top