Возможно ли использовать $ 1 в массиве Bash? - PullRequest
0 голосов
/ 19 декабря 2009

Скрипт, который я пишу, потребует от меня передачи некоторых параметров командной строки. Я хотел бы использовать эти параметры в массиве, но я не уверен, как.

Очень простой пример этого (скрипт запускается как ./script.sh array1):

#!/bin/bash
array1=( a b c d )

echo ${#$1[@]}

Вывод должен быть 4, но я получаю следующую ошибку: line 5: ${#$1[@]}: bad substitution.

У меня нет для использования массивов, но я бы хотел.

Спасибо за любые идеи

Ответы [ 2 ]

2 голосов
/ 19 декабря 2009

вам нужно получить bash, чтобы заменить значение $ 1, прежде чем оценивать строку, попробуйте это ...

eval echo \${#$1[@]}
0 голосов
/ 19 декабря 2009
eval echo '${#'$1'[@]};'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...