我正在尝试编写一个Bash脚本来转换一堆文件。
假设我有一个目录/path/to/my files/
,其中包含三个文本文件:a b.txt
,c d.txt
和e.txt
(请注意空格)
我需要能够像这样调用脚本:
$ ./myscript.sh /path/to/my\ files/*.txt
然后在bash中循环遍历它们,就像这样处理它们:
dest='/desktop/'
for ARG in $@; do
/some/other/script $ARG $dest$ARG.new
done
它不必像这样工作,无论什么是最容易产生类似结果的
答案 0 :(得分:5)
这是否符合您的要求:
dest='/desktop/'
for ARG in "$@"; do
/some/other/script "$ARG" "$dest$ARG.new"
done
编辑:删除ARG上的路径
dest='/desktop/'
for ARG in "$@"; do
/some/other/script "$ARG" "$dest$(basename "$ARG").new"
done
答案 1 :(得分:1)
Bash在执行命令之前执行通配符扩展,也就是说,它会用匹配文件列表替换该表达式。