LINUX.ORG.RU

Как в bash получить значение n-ного параметра скрипта?

 


0

1

Пишу скрипт, которому может передаваться много пераметров. Нужно как то воспользоваться параметром с произвольным номером, например echo $N, где N хранится в другой переменной.

Не знаю как это написать на bash, прошу помощи.

★★★★★

n=5
value=$( eval echo "\${${n}}" )

Ещё, в зависимости от задачи, возможно будет логичнее сделать при помощи shift.

Deleted
()

Есть два правильных способа. Вот два скрипта, которые печатают свои аргументы:

#!/bin/sh

while [ $# -ne 0 ]; do
  echo $1
  shift
done
#!/bin/bash

for ((i=1;i<=$#;++i)); do
  echo ${!i}
done
legolegs ★★★★★
()

Всё хорошо, и выбор вариантов есть.

НО Я 3 ЧАСА ПЫТАЛСЯ ПОНЯТЬ, ПОЧЕМУ У МЕНЯ НЕ РАБОТАЕТ НИ ОДИН ИЗ НИХ!!!..... Оказалось что echo наотрез отказывается повторять параметр -n, ни в каком виде.

kirill_rrr ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Это покажет лишние символы

anonymous
()
Ответ на: комментарий от legolegs

Я использовал этот кусок для сортировки параметров скрипта. Просто вместо -n я уже использовал -no

kirill_rrr ★★★★★
() автор топика
Ответ на: комментарий от anonymous

ебаные лоровкие пони с преобразованием символов

<br/><br/> !!!

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.