运行 Automator 中使用位置参数的 bash 脚本
Run a bash script within Automator using positional parameters
这是我第一次使用 Automator,它似乎是一个非常漂亮的工具。然而,在自动化的最后阶段,我 运行 遇到了一个问题。我的自动化工作流程的目标是指定一个路径,然后创建一个目录 Highschool1
,例如,在该路径内。
从这里开始,我希望它在指定路径中搜索名称中包含 "Highschool1" 的任何文件,并将它们移动到新的 Highschool1
目录中。这是我的 bash 脚本在终端中的工作方式:
mkdir "/Users/tommy/Desktop/TestShow1/WG/Highschool1"
这将按预期创建目录。那么:
find /Users/tommy/Desktop/TestShow1/WG -name 'Highschool1' -prune -o -type f -name '*Highschool1*' -exec mv -- {} /Users/tommy/Desktop/TestShow1/WG/Highschool1 \;
这会找到我想要的文件,同时排除新的 Highschool1
目录,然后将找到的文件移动到那个 Highschool1
目录中。基地一切正常。
当我尝试使用位置参数在我的自动化中应用此脚本时,它停止工作。
-我用输入 "Highschool1"
填充了一个名为 "HighschoolName" 的变量
-然后我用输入填充一个名为"pathA"的变量,这是我选择的路径:“/Users/tommy/Desktop/TestShow1/WG”
- 然后我回调我的 HighschoolName 变量并从位置参数开始。
这是我最后使用的脚本:
mkdir "/"
find / -name '' -prune -o -type f -name '**' -exec mv -- {} // \;
这会在我想要的位置创建目录 Highschool1
,但无法将任何文件移动到其中。它也没有给我任何错误信息。它的作用就好像脚本 运行 成功一样。有人知道问题出在哪里吗?
了解 quoting
在:
find / -name '' -prune -o -type f -name '**' -exec mv -- {} // \;
''
不会插入变量,你需要使用""
('**'
相同)
这是我第一次使用 Automator,它似乎是一个非常漂亮的工具。然而,在自动化的最后阶段,我 运行 遇到了一个问题。我的自动化工作流程的目标是指定一个路径,然后创建一个目录 Highschool1
,例如,在该路径内。
从这里开始,我希望它在指定路径中搜索名称中包含 "Highschool1" 的任何文件,并将它们移动到新的 Highschool1
目录中。这是我的 bash 脚本在终端中的工作方式:
mkdir "/Users/tommy/Desktop/TestShow1/WG/Highschool1"
这将按预期创建目录。那么:
find /Users/tommy/Desktop/TestShow1/WG -name 'Highschool1' -prune -o -type f -name '*Highschool1*' -exec mv -- {} /Users/tommy/Desktop/TestShow1/WG/Highschool1 \;
这会找到我想要的文件,同时排除新的 Highschool1
目录,然后将找到的文件移动到那个 Highschool1
目录中。基地一切正常。
当我尝试使用位置参数在我的自动化中应用此脚本时,它停止工作。
-我用输入 "Highschool1"
填充了一个名为 "HighschoolName" 的变量
-然后我用输入填充一个名为"pathA"的变量,这是我选择的路径:“/Users/tommy/Desktop/TestShow1/WG”
- 然后我回调我的 HighschoolName 变量并从位置参数开始。
这是我最后使用的脚本:
mkdir "/"
find / -name '' -prune -o -type f -name '**' -exec mv -- {} // \;
这会在我想要的位置创建目录 Highschool1
,但无法将任何文件移动到其中。它也没有给我任何错误信息。它的作用就好像脚本 运行 成功一样。有人知道问题出在哪里吗?
了解 quoting
在:
find / -name '' -prune -o -type f -name '**' -exec mv -- {} // \;
''
不会插入变量,你需要使用""
('**'
相同)