[英]Using a Wildcard Match as a Command Line Argument in Bash
我正在尝试编写一个 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
它不必完全像这样工作,任何最简单的都会产生类似的结果
这是否满足您的需求:
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
Bash 在执行命令之前会进行通配符扩展,也就是说,它将将该表达式替换为匹配文件的列表。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.