使用i作为bash shell脚本中的变量

时间:2014-10-02 20:21:45

标签: bash shell

我正在尝试创建一个shell脚本,该脚本将接受命令行参数并基于此创建一个或多个文件。我知道每个命令行参数都存储在$ 0,$ 1,$ 2 ......等等,所以这就是这个循环的基础。

for i in $(eval echo {1..$#})
do
    echo "File I'm about to edit/create: "$i""
    touch "$i"
done

然而,$ i被视为数字1,2,而不是$ 1中的数值。

1 个答案:

答案 0 :(得分:2)

您需要使用间接参数扩展:

echo "File...: ${!i}"
touch "${!i}"

然而,迭代参数本身要简单得多:

for f in "$@"; do
    echo "File...: $f"
    touch "$f"
done