2012-04-30 46 views
2

我經常發現自己想看看目錄中的一堆圖。我通常做類似:在bash for循環中分離進程

for PLT in *.png; do bash -c "display ${PLT} &" ; done 

因爲

for PLT in *.png; do display ${PLT} & ; done #doesn't work :-(

有沒有更簡單/更少醜/更好地爲這樣的事情成語? 我也試圖包圍在括號中條命令,但是,這並不工作,要麼(只打開一個圖)...

for PLT in *.png; do (display ${PLT}) ; done 

編輯

注意,我在交互式我的工作終奌站。如果我寫一個腳本,並打破了第二個for循環爲多行,它工作得很好......

回答

4

後您的&刪除分號:

for PLT in *.png; do display ${PLT} & done 

此外,使用「$ {} PLT」是一個好的做法,以防萬一你的文件名中有空格。

+0

太棒了!爲什麼分號在通常需要時會導致語法錯誤? – mgilson

+0

只是shell語法。兩者;和&是行終止符,所以;正在結束一個空行,這被視爲語法錯誤。 –

+0

再次感謝,我通常不會將我的變量放在雙引號中,因爲我認爲文件名中的空格是不好的練習...但是,您可能對此也是正確的... – mgilson

-1

我想你可以用xargs來做到這一點。

ls *.png | xargs -0 -n 1 -P 10 display 

要麼選擇可能是一個小更安全,這取決於你需要多少PNG文件進行處理。

+0

您的任何示例都不能用於包含空格的文件。 http://mywiki.wooledge.org/ParsingLs – jordanm

+0

@jordanm,我修正它與空格一起工作。 – gpojd

+0

完全打破它,因爲ls輸出不是\ 0終止。 – jordanm