سؤال

كيفية الحصول على 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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top