Bash

遍歷目錄

  • August 22, 2021
paths=$1
files=$2
for dir in ${paths[@]}
do
   newdir=${dir##*/}
   newpath=(/pathname)
   val=`mkdir -p ${newpath}/${newdir}`
   echo ${val}

   for file in "${dir}"/*; do
       if [[ -f $file && $file = *.@(c|cc|cpp|h) ]]; then
           cp ${file} ${val}
       fi
   done
done

我想遍歷目錄並複制新創建的 val 目錄中的文件名..但我無法列印 val 的值。我究竟做錯了什麼?

您正在分配的輸出

mkdir -p ${newpath}/${newdir}

到 val,但是這個命令不輸出任何東西,因此你不能列印任何東西。(可以,但輸出為空)

如果您想在 val 中包含任何內容,請先執行此操作並使用 val 創建目錄,例如:

val="$newpath/$newdir"

mkdir "$val"

這樣,您就可以在變數中創建目錄。

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