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