Bash脚本在循环中读取输入

时间:2016-01-07 15:31:36

标签: bash loops variables input

我想阅读bash脚本

e.g

test.sh input1 id1 name1 input2 id2 name2 input3 id3 name3

我想将输入读入循环并将三个参数组分配给局部变量并运行不同的命令,例如

for var in "$@"   
    do
    input=$var
    id=$var+1
    name=$var+2
    rawFastq=${input}
     echo "input is" $input
     echo "id" $id
     echo "name is" $name
   Rscript "$input"/script1.R ID name

done

如何转到下一个命令行参数。 $var+1或添加计数器然后执行${i+1}无效?

1 个答案:

答案 0 :(得分:0)

您必须迭代用户参数的元素,就像在任何其他编程语言中一样。例如:

args=("$@")
i=0
while [ $i -lt ${#args[@]} ]; do
  input=${args[$i]}
  i=$[$i+1]
  id=${args[$i]}
  i=$[$i+1]
  name=${args[$i]}
  i=$[$i+1]

  Rscript $input/script1.R $id $name
done