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

کمک و پشتیبانی => انجمن عمومی => نویسنده: A. Rahmati در 02 شهریور 1398، 04:52 ب‌ظ

عنوان: آرایه با اندیس فارسی
ارسال شده توسط: A. Rahmati در 02 شهریور 1398، 04:52 ب‌ظ
سلام.
در شل‌اسکریپت می‌توانیم آرایه‌ای بسازیم که الزاماً از اندیس عدد استفاده نکند. مثل این:$ array[linux]=ubuntu
$ echo ${array[linux]}
ubuntu
مشکل من این است که وقتی از اندیس فارسی استفاده می‌کنم به خطا می‌خورم:$ array[لینوکس]=ubuntu
bash: لینوکس: syntax error: operand expected (error token is "لینوکس")
می‌خواهم بدانم که اصولاً این کار ناممکن است یا این که باید به شکل خاصی این کار را کرد (پرانتز یا ... نیاز دارد)؟
عنوان: پاسخ : آرایه با اندیس فارسی
ارسال شده توسط: esmaeelE در 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]}

عنوان: پاسخ : آرایه با اندیس فارسی
ارسال شده توسط: A. Rahmati در 12 شهریور 1398، 02:48 ق‌ظ
ایده‌ی جالبی است. متشکر که نوشتی

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