2017-09-22 20 views
0

我有一個while循環,其中A = 1〜3追加從while循環變量到命令行選項

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

do 

whatever 

done 

MySQL命令將返回唯一號碼,在每一行中的每個號碼。因此,while循環在這裏將有一個命令行在循環中運行(這裏是A = 1〜3),以便在循環之外運行的循環中添加整數(A = 1〜3) while循環。任何bash的方式來做到這一點?

平行--joblog test.log中--jobs 2 -k SH ::: 1.sh 2.sh 3.sh

+0

你能澄清'mysql'命令的輸出嗎(它總是隻有數字嗎?每個都在一個單獨的行上,或者用空格和/或逗號或其他分隔符來分隔?)。此外,它看起來像你想要「.sh」附加到每一個;那是對的嗎? –

+0

是的,每個數字都與MySQL命令分開。另外,在每個附加的.sh上都是。我也編輯這個問題!謝謝! @Gordon Davisson – Chubaka

回答

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 ::: 
+0

你可以通過用'sed's/$ /。sh /''替換while循環來簡化這一點。 –

+0

我只是說了一個回聲,而不是「無論」,假設其他一些命令也可能被執行。如果情況並非如此,那麼sed確實是要走的路。 (將任何內容添加到循環中) –

+0

您能否啓發您的解決方案的更多細節,@GordonDavisson?謝謝。 – Chubaka