我尝试为家庭作业问题编写一个bash脚本,我需要访问源文件夹中的某些文件,删除所有注释并将未注释的文件(或副本)发送到目标文件夹,这是我目前的尝试:
#!/bin/bash
destination="$1"
source="$2"
mkdir "$destination"
files=(${$("$source"/*)})
for file in "${files[@]}"
do
grep -E -v "^[[:space:]]*[//]" "$file">> "/$destination/$file"
done
问题似乎是我没有正确创建数组元素,我希望数组包含源文件夹中文件的名称,任何人都可以指导我这样做的正确方法(最好没有解决整个练习,因为它毕竟是家庭作业)/
答案 0 :(得分:4)
更改此
files=(${$("$source"/*)})
到
files=("$source"/*) # grab name of all files under $source dir and store it in array
答案 1 :(得分:2)
实际上根本不需要数组,对于大量匹配文件,直接迭代模式也更有效。
for file in "$source"/*; do