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

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

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




نویسنده موضوع: آرایه با اندیس فارسی  (دفعات بازدید: 629 بار)

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

آفلاین A. Rahmati

  • Full Member
  • *
  • ارسال: 113
  • جنسیت : پسر
آرایه با اندیس فارسی
« : 02 شهریور 1398، 04:52 ب‌ظ »
سلام.
در شل‌اسکریپت می‌توانیم آرایه‌ای بسازیم که الزاماً از اندیس عدد استفاده نکند. مثل این:$ array[linux]=ubuntu
$ echo ${array[linux]}
ubuntu
مشکل من این است که وقتی از اندیس فارسی استفاده می‌کنم به خطا می‌خورم:$ array[لینوکس]=ubuntu
bash: لینوکس: syntax error: operand expected (error token is "لینوکس")
می‌خواهم بدانم که اصولاً این کار ناممکن است یا این که باید به شکل خاصی این کار را کرد (پرانتز یا ... نیاز دارد)؟
Ubuntu Gnome 20.04 LTS

آفلاین esmaeelE

  • ناظر انجمن
  • *
  • ارسال: 1251
  • جنسیت : پسر
پاسخ : آرایه با اندیس فارسی
« پاسخ #1 : 11 شهریور 1398، 09:01 ب‌ظ »
اینطوری جواب میده

v_utf8='ل'
n_utf8=${#v_utf8}

echo $n_utf8

array[n_utf8]=ubuntu
array[n]=same

vv_utf8='لینوکس'
nn_utf8=${#vv_utf8}

array[nn_utf8]=debian

echo ${array[n_utf8]}
echo ${array[n]}

echo ${array[nn_utf8]}

« آخرین ویرایش: 30 آذر 1398، 05:33 ق‌ظ توسط esmaeelE »

آفلاین A. Rahmati

  • Full Member
  • *
  • ارسال: 113
  • جنسیت : پسر
پاسخ : آرایه با اندیس فارسی
« پاسخ #2 : 12 شهریور 1398، 02:48 ق‌ظ »
ایده‌ی جالبی است. متشکر که نوشتی

من یک راه دیگر هم پیدا کردم.
این طور که خواندم آرایه‌ها دو نوع دارند: indexed, associative
به نظر می‌رسد اگر آرایه را از اول associative تعریف کنیم دیگر با فارسی مشکلی نخواهد داشت.
$ declare -A array
$ array[لینوکس]=ubuntu
$ echo ${array[لینوکس]}
ubuntu
Ubuntu Gnome 20.04 LTS