Создать массив в цикле из числа аргументов
#!/bin/bash
COUNTER=$#
until [ $COUNTER -eq 0 ]; do
args[$COUNTER]=\$COUNTER
let COUNTER-=1
done
echo ${args[@]}
Когда я запускаю это, я получаю следующие результаты
user@host:~/sandbox# ./script.sh first second third
$1 $2 $3
и я'Я ожидаю, что это отразит то, что $ 1, $ 2 и $ 3 не являются текстовым значением "$ 1" Я
я пытаюсь написать скрипт на bash, который создаст массив размером с количество аргументов, которые я ему предоставлю.
Я ожидаю
user@host:~/sandbox# ./script.sh alpha bravo charlie
alpha bravo charlie
или же
user@host:~/sandbox# ./script.sh 23425 jasson orange green verb noun coffee
23425 jasson orange green verb noun coffee
Итак, цель состоит в том, чтобы сделать
args[0]=$1
args[1]=$2
args[2]=$3
args[3]=$4
То, как у меня это,$1,$2,$3
Арен»не интерполируется, а просто читается как текстовая строка.