簡體   English   中英

Bash 子外殼到文件

[英]Bash subshell to file

我正在循環一個大文件,在每一行我運行一些命令,當它們完成時,我希望將整個 output 附加到文件中。

由於沒有什么能阻止我一次運行多個命令,我嘗試在后台運行它&

它沒有按預期工作,它只是在命令完成時將命令附加到文件中,而不是按照它們在子shell中出現的順序

#!/bin/bash
while read -r line; do
  (
    echo -e "$line\n-----------------"
    trivy image --severity CRITICAL $line
    # or any other command that might take 1-2 seconds
    echo "============="
  ) >> vulnerabilities.txt &
done <images.txt

我哪里錯了?

考慮使用GNU Parallel來並行完成很多事情。 在你的情況下:

parallel -k -a images.txt trivy image --severity CRITICAL > vulnerabilities.txt

-k使 output 保持有序。 添加--bar--eta用於進度報告。 添加--dry-run以查看它在不實際執行任何操作的情況下做什么。 添加-j...來控制任意一次並行作業的數量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM