【发布时间】:2013-03-14 21:45:44
【问题描述】:
#!/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 没有被插值,而是被读取为文本字符串。
【问题讨论】:
标签: arrays bash loops interpolation