如何将 "ask for text" 输入传递给 "Run Shell Script"

How to pass "ask for text" input to "Run Shell Script"

我的 Automator 有两个盒子:

1) 询问文本 2) Shell 脚本

我不知道如何将(1)的内容传递给(2)。 该工作流旨在接收文件并使用输入的文本重命名它们。 所以:

for f in "$@"
do
    text_entered=????
path/to/my/command "$f" "text_entered"
done

这就是我零编程知识所能做的:)

有两种方法可以将用户输入传递给 shell 脚本:

a) 通过读取命令 b) 通过命令行参数

例如:

read text_entered #will seek user input for entering the text

sh script.sh <text> 这里 <text> 指的是给脚本的第一个参数,它可能是传递给脚本以供在执行期间使用的文本输入(作为脚本中的变量 $1)。

在 script.sh 文件中,将 $1 传递给 text_entered 变量

示例:

text_entered=

如果要输入的文本顺序与 $@ 中的参数列表相匹配,那么您也可以将文本放入一个预先命名的文件中(例如 texts.txt)并在 for 循环过程中读取相同的文件如下:

counter=1
for f in "$@"
do
    text_entered=`sed $counter'!d' texts.txt`
    path/to/my/command $f text_entered
    counter=`expr $counter + 1`
done