【发布时间】:2016-04-29 02:09:25
【问题描述】:
在终端中运行它运行良好:
for a in *.pdf; do mv "$a" "$a".tmp; done
在 bash 脚本中运行它 (#!/bin/bash)
for a in "$1"; do mv "$a" "$a".tmp; done
...并传递参数*.pdf,即./myscript *.pdf,脚本只处理目录中的第一个文件。通过将mv 更改为echo 进行测试显示相同的结果。
任何解释为什么会这样,以及如何使它能够处理所有文件匹配?谢谢!
【问题讨论】:
-
shell 已经扩展了
*.pdf并将 pdf 列表传递给 myscript。如果您想将字符串*.pdf传递给您的脚本,您将不得不引用或转义它。./myscript "*.pdf"应该可以工作