循环遍历目录

循环遍历目录
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 的值。我究竟做错了什么?

答案1

您正在分配的输出

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

到 val,但是这个命令不会输出任何内容,因此您无法打印任何内容。 (可以,但是输出为空)

如果您想在 val 中添加任何内容,请先执行此操作并使用 val 创建目录,例如:

val="$newpath/$newdir"

mkdir "$val"

这样你就可以在变量中创建创建的目录。

相关内容