递归地将变量附加到curl的结果

时间:2015-03-16 22:22:49

标签: bash curl

我使用curl并将输出放入文件中。以下脚本将字符串mystring添加到输出:

#!/bin/bash

file=$1

ids=$(head ${file} | awk '{print $1}')

for i in ${ids}
do
    curl -sS http://www.uniprot.org/uniprot/$i.fasta -w "mystring" >> test1.txt
done

这很好,我明白了:

$ ./myscript.sh
mystring>Q12345
mystring>P79403
mystring>Q27595

但是,当尝试通过执行以下操作来添加变量时:

#!/bin/bash

file=$1

ids=$(head ${file} | awk '{print $1}')

for i in ${ids}
do
    curl -sS http://www.uniprot.org/uniprot/$i.fasta -w "$ids" >> test1.txt
done

我明白了:

$ ./myscript.sh
myvar1>Q12345
myvar1
myvar1
myvar1
myvar2>P79403
myvar2
myvar2
myvar2
myvar3>Q27595
myvar3
myvar3
myvar3

所以有点有效 - 但它增加了额外的行。我该如何编辑我的脚本?

1 个答案:

答案 0 :(得分:1)

curl -sS http://www.uniprot.org/uniprot/$i.fasta -w "$ids" >> test1.txt

应该是

curl -sS "http://www.uniprot.org/uniprot/$i.fasta" -w "$i" >> test1.txt