انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید


ارائه ۲۴٫۱۰ اوبونتو منتشر شد 🎉

نویسنده موضوع: مشکل در متغیر دارای محتوای اسپیس دار در بش (حل شد)  (دفعات بازدید: 810 بار)

0 کاربر و 1 مهمان درحال مشاهده موضوع.

آفلاین حامد سپهر

  • High Hero Member
  • *
  • ارسال: 1556
  • جنسیت : پسر
یه کد کوچولو برای یه کاری نوشتم که میاد لیست تمام پوشه های موجود تو مسیر فعلی رو میگیره و اسمشون رو چاپ میکنه و قبل اسمشون مینویسه folder: نتیجه هم این کد شد:

for folder in $(ls -d -1 */)
do
echo "folder:" "$folder"
done

کد در حالت عادی مشکلی نداره... ولی اگه یک فولدر دراسمش فاصله وجود داشته باشه درست نتیجه نمیده. مثلا اگه اسم یه پوشه hello world باشه خروجی به این شکل میشه:

folder: hello
folder: world

که درست نیست. خودم هم تا الآن که سرچ کردم نفهمیدم باید چیکار کنم تا این مشکل حل بشه. بازم سرچ میکنم ولی منتظر راهنمایی‌های دوستان هم هستم  ;D
« آخرین ویرایش: 16 تیر 1394، 05:36 ب‌ظ توسط حامد سپهر »

آفلاین دانیال بهزادی

  • ناظر انجمن
  • *
  • ارسال: 19724
  • جنسیت : پسر
  • Urahara Kiesuke
    • وبلاگ
ابتدای اسکریپتت بنویس:
IFS=$'\n'تا فقط CR رو به عنوان جداکنندهٔ فیلد درونی بشناسه. سعی مي‌کنم فردا براش تو ویکی بنویسم.
اگه این ارسال بهت کمک کرد، دنبال دکمهٔ تشکر نگرد. به جاش تو هم به جامعهٔ آزادت کمک کن

آفلاین حامد سپهر

  • High Hero Member
  • *
  • ارسال: 1556
  • جنسیت : پسر
اتفاقا اینجا هم همچین چیزی پیدا کردم: http://www.cyberciti.biz/tips/handling-filenames-with-spaces-in-bash.html

اگه دوباره محتویات IFS رو با حالت اول بر نگردونم مشکل خاصی پیش میاد؟

(خدا میدونه تا حالا چندبار مشکلاتم رو از تو cyberciti‌حل کردم! واقعا فوق العادست!!!!)

آفلاین دانیال بهزادی

  • ناظر انجمن
  • *
  • ارسال: 19724
  • جنسیت : پسر
  • Urahara Kiesuke
    • وبلاگ
نه، حوزهٔ اثرش فقط توی همون اسکریپته
اگه این ارسال بهت کمک کرد، دنبال دکمهٔ تشکر نگرد. به جاش تو هم به جامعهٔ آزادت کمک کن