2016-05-17 103 views
0

我有一个脚本需要三个命令行参数:1)一个infile,2)一个outfile,以及3)要添加到infile的单个数字。ksh - 将命令行参数添加到数组

我想修改这个脚本,使它可以接受任意数量的类似于上面参数(3)的参数,并根据每个参数创建一个单独的outfile。我相信实现这一点的最好方法(我知道)是将参数(2)之后的所有参数赋值给一个数组,然后使用for循环遍历数组。

这似乎很容易使用下面的代码来创建磁盘阵列:

set -A arrayName "[email protected]" 

我的问题是,究竟会我只分配参数3辗转阵列,同时允许任意数量的参数大于二?

回答

0

原谅我,如果这太简单的解决方案。但不需要创建数组,只需查看要附加的数字即可:

echo 'start' 
echo 'usage: my_prog.ksh infile outfile numtoappend [...]' 
echo '$*' 
echo $* 

echo 'infile: ' $1 
infile=$1 
shift 
echo 'outfile: ' $1 
outfile=$1 
shift 
cat $infile > $outfile 

echo 'starting loop: ' 
until [[ $# -eq 0 ]];do 
    echo '$numbers to append' 
    echo $1 
    echo $1 >> $outfile 
    shift 
done 
echo 'end'