Bash

查找命令中的變數設置為 bash 中的新變數

  • August 9, 2017

是否有可能做這樣的事情:

inputNum="$1"

files=($(find /dir/to/check -mtime $inputNum))

基本上這個想法是我可以使用輸入參數來設置查找文件的天數並將其設置為變數數組。我不確定在 bash 中使其可讀的語法。

的輸出find不能可靠地進行後處理,除非您使用-print0而不是-print-print未指定操作時隱含)。

要對文件路徑的輸出進行後處理find -print0並將其儲存在數組中:

使用 bash4.4+:

readarray -td '' files < <(find /dir/to/check -mtime "$inputNum" -print0)

對於舊版本:

files=()
while IFS= read -rd '' file; do
 files=("${files[@]}" "$file")
done < <(find /dir/to/check -mtime "$inputNum" -print0)

更一般地說,您需要閱讀以下建議:為什麼循環查找的輸出是不好的做法?

引用自:https://unix.stackexchange.com/questions/384974