我有一个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
答案 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/