将变量从while循环追加到命令行选项中

时间:2017-09-22 00:14:12

标签: bash append

我有一个while循环,其中A = 1~3

mysql -e "select A from xxx;" while read A; 

do 

whatever

done

mySQL命令将只返回数字,每行中的每个数字。因此这里的while循环将具有A = 1,A = 2,A = 3

我想将循环中的整数(这里是A = 1~3)附加到命令行中以在while循环之外运行。任何bash方式来做到这一点?

parallel --joblog test.log --jobs 2 -k sh ::: 1.sh 2.sh 3.sh

2 个答案:

答案 0 :(得分:2)

你可能想要这样的东西:

mysql -e "select A from xxx;" | while read A; do 
    whatever > standard_out 2>standard_error
    echo "$A.sh"
done | xargs parallel --joblog test.log --jobs 2 -k sh ::: 

答案 1 :(得分:0)

感谢您的启发。 xargs在这里完美运作:

假设我们有A.csv(模仿mysql命令)

1
2
3
4

我们可以做到:

cat A.csv | while read A; do

echo "echo $A" > $A.sh

echo "$A.sh"

done | xargs -I {} parallel --joblog test.log --jobs 2 -k sh ::: {}

以上将按预期打印以下输出

1
2
3
4

这里 - 我{}& {}是参数列表标记:

https://www.cyberciti.biz/faq/linux-unix-bsd-xargs-construct-argument-lists-utility/

相关问题