مضى على الشبكة و يوم من العطاء.
  • السلام عليكم ورحمة الله وبركاته، نرجوا كتابة طلبك او سؤالك باللغة العربية مع ارفاق صورة عن الخطأ او توضيح كافي للمشكلة.

[ مُجاب ] تفسير لـ Bash-script

الطاييرالطايير is verified member.

{ | مشرف قسم أنظمة التشغيل | }

firefox
linux

السمعة:

السكربت لو بالشكل التالي :
Bash:
echo '1 2 3 4 5 6' | while read a b c; do
echo result: $c $b $a;
done

result: 3 4 5 6 2 1

محتاج لو حد عنده تفسير .. ليه الناتج مش كده : result: 123456 123456 123456
 
الحل
أعتقد لأنه يقوم باسناد القيم بناء على المسافة بينها يعني مثلا يعطي c قيمة ومن ثم بناءا على المسافة يعطي b القيمة الثانية ومن ثم يسند باقي القيم للمتغير الأخير، لو تم تعريف متغير واحد فقط بدل a b c ستظهر النتيجة 123456
أعتقد لو تم بهاي الطريقة echo result: $a $b $c; ممكن تطلع النتيجة 123456
 
ممكن تطلع النتيجة 123456
الفكره انه ليه a قبل ب input واحد فقط هو (1) وكذلك b وهو (2) ولكن c قبل بـ (3456) ؟؟؟
 
أعتقد لأنه يقوم باسناد القيم بناء على المسافة بينها يعني مثلا يعطي c قيمة ومن ثم بناءا على المسافة يعطي b القيمة الثانية ومن ثم يسند باقي القيم للمتغير الأخير، لو تم تعريف متغير واحد فقط بدل a b c ستظهر النتيجة 123456
 
الحل
أعتقد لو تم بهاي الطريقة echo result: $a $b $c; ممكن تطلع النتيجة 123456
فعلاً ... شكراً ليك كده وضحت الصورة عندي 🤗
لما عملت escape للـمسافة مبين الارقام اتعامل معاهم كـ value واحد :
1711711083064.png
 

آخر المشاركات

فانوس

رمضان
عودة
أعلى