ksh - 向数组添加命令行参数

时间:2016-05-17 16:26:55

标签: arrays arguments ksh

我有一个脚本,它接受三个命令行参数:1)infile,2)outfile,以及3)要添加到infile的单个数字。

我想修改这个脚本,以便它可以使用与上面的参数(3)类似的任意数量的参数,并根据每个参数创建一个单独的outfile。我相信实现这个目标的最好方法(我知道)是将参数(2)之后的所有参数分配给一个数组,然后使用for循环迭代数组。

使用以下代码创建数组似乎很容易:

set -A arrayName "$@"

我的问题是,如果允许任意数量的参数大于2,我将如何仅将参数3分配给数组?

1 个答案:

答案 0 :(得分: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'