Bash 如何避免在复杂的MDFIND命令中使用40个变量

Bash 如何避免在复杂的MDFIND命令中使用40个变量,bash,applescript,Bash,Applescript,我正在寻找一个更好的方法来做以下事情 我目前正在从一个文本文件中读取多达40个字符串,以构建40个变量,用于此MDFIND命令(仅显示前2个aa_fN变量,其中N是1到40之间的数字) 有没有更好的方法不需要使用40个变量就可以做到这一点?在我看来,您可能希望通过循环来实现这一点,类似这样的 repeat with i from 1 to 40 do shell script "mdfind -onlyin \"/Users/username/Documents/AAA/\" \"(

我正在寻找一个更好的方法来做以下事情

我目前正在从一个文本文件中读取多达40个字符串,以构建40个变量,用于此MDFIND命令(仅显示前2个aa_fN变量,其中N是1到40之间的数字)


有没有更好的方法不需要使用40个变量就可以做到这一点?

在我看来,您可能希望通过循环来实现这一点,类似这样的

repeat with i from 1 to 40
    do shell script "mdfind -onlyin \"/Users/username/Documents/AAA/\" \"(  (kMDItemUserTags == 'Gray*'cdw) && (  kMDItemDisplayName == '*$KMVAR_aa_f" & i & "*'c )  )\""
    -- do something with rslts
end repeat

注意:我没有测试您的原始代码是否有错误

,这完全取决于您想对正在收集的40个字符串执行什么操作。如果您确定它们中没有一个是空的,那么您可以创建一个包含40项的列表。只要你知道哪个是哪个,你就完了。您还可以创建一个虚拟记录,并使用结果填写各个项目。
repeat with i from 1 to 40
    do shell script "mdfind -onlyin \"/Users/username/Documents/AAA/\" \"(  (kMDItemUserTags == 'Gray*'cdw) && (  kMDItemDisplayName == '*$KMVAR_aa_f" & i & "*'c )  )\""
    -- do something with rslts
end repeat