كيفية الحصول على الحجة الموضعية NTH في باش؟
-
19-09-2019 - |
سؤال
كيفية الحصول على n
الحجة الموضعية في باش، حيث n
متغير؟
المحلول
استخدم ميزة Bash's Indirection:
#!/bin/bash
n=3
echo ${!n}
تشغيل هذا الملف:
$ ./ind apple banana cantaloupe dates
ينتج عنه:
cantaloupe
تعديل:
يمكنك أيضا أن تفعل تقطيع الصفيف:
echo ${@:$n:1}
ولكن ليس مجموعة الاشتراكات:
echo ${@[n]} # WON'T WORK
نصائح أخرى
لو N
يتم حفظه في متغير، واستخدام
eval echo \${$N}
إذا كان استخدام ثابت
echo ${12}
حيث
echo $12
لا يعني نفسه!
$1 $2 ... $n
$0
يحتوي على اسم البرنامج النصي.
كما ترون في باش حسب المثال, ، تحتاج فقط إلى استخدام المتغيرات التلقائية $ 1، 2 دولار، وهلم جرا.
يستخدم $ # للحصول على عدد الحجج.
اقرأ
و
$ 0: المعلمة الموضعية الأولى
$ 1 ... $ 9: قائمة قائمة الوسائط من 1 إلى 9
لا تنتمي إلى StackOverflow