Как передать ввод «запрос текста» в «Запуск сценария оболочки» - PullRequest
0 голосов
/ 18 июня 2020

My Automator имеет два поля:

1) Запрос текста 2) Shell Script

Я не знаю, как передать содержимое из (1) в (2). Рабочий процесс направлен на получение файлов и их переименование с использованием введенного текста. Итак:

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

Это все, что я могу сделать с моими нулевыми познаниями в программировании :)

1 Ответ

1 голос
/ 18 июня 2020

Есть два способа передать вводимые пользователем данные в сценарии оболочки:

a) Через команду чтения b) Через аргументы командной строки

Например:

read text_entered #will seek user input for entering the text

или

sh script.sh <text> Здесь <text> относится к первому аргументу, переданному скрипту, который может быть вводимым текстом, переданным скрипту для использования во время выполнения (как переменная $ 1 в скрипте).

внутри скрипта. sh файл, передать $ 1 переменной text_entered

пример:

text_entered=$1

Если порядок ввода текста совпадает со списком аргументов в $ @ вы также можете поместить текст в предварительно названный файл (например, text.txt) и прочитать его в течение l oop следующим образом:

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
...