我有一个脚本,它接受三个命令行参数:1)infile,2)outfile,以及3)要添加到infile的单个数字。
我想修改这个脚本,以便它可以使用与上面的参数(3)类似的任意数量的参数,并根据每个参数创建一个单独的outfile。我相信实现这个目标的最好方法(我知道)是将参数(2)之后的所有参数分配给一个数组,然后使用for循环迭代数组。
使用以下代码创建数组似乎很容易:
set -A arrayName "$@"
我的问题是,如果允许任意数量的参数大于2,我将如何仅将参数3分配给数组?
答案 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'