假设我希望在目录中运行所有脚本。如果我这样做。/*。
目录:1.SH2.SH3.SH
才能运行所有脚本,必须分别运行它们:
for f in ./*; do
"$f"
done
该模式将产生字母顺序排序的脚本列表,其中"字母顺序"由您当前的语言环境定义。
您的尝试:
./*
将扩展到匹配文件列表,然后将其视为单个命令。第一个脚本将被执行,其余的脚本名称作为参数传递给第一个。
它们是按字母顺序排序的。从bash手册中:
单词拆分后,除非设置了-f选项(请参阅set indenin),bash将每个单词扫描为字符'*','?'和'[''。如果这些字符之一出现,则将单词视为模式,并用字母顺序排序的文件名列表匹配该模式。
但是,为了按照您的期望运行它们,您将需要阅读@chepners 答案(谢谢!!/div>