AppleScript для Shell-Script - PullRequest
       11

AppleScript для Shell-Script

0 голосов
/ 29 января 2020

Когда я копирую несколько абзацев данных, таких как

line 1
line 2
line 3

, в свой буфер обмена на Ma c, я могу получить доступ к его элементам через AppleScript через

on run {input, parameters}
set theClip to input as text
set value of variable "Empfänger" of front workflow to paragraph 1 of theClip
set value of variable "Betreff" of front workflow to paragraph 2 of theClip
set value of variable "Textkörper" of front workflow to paragraph 3 of theClip
end run

и записать их в Automator переменные. Могу ли я сделать то же самое в Shell-Script? Когда я запускаю

for f in "$@"
do
echo "$f"
done

, кажется, что все хранится в $ 1. На самом деле, я не против использовать абзацы в качестве разделителя, но настраиваемый знак, такой как {NEXT} или что-то подобное.

Заранее спасибо!

1 Ответ

1 голос
/ 29 января 2020

Ваш пример, кажется, рад рассматривать строку как абзац. Итак, я сделаю то же самое. Таким образом, если вы копируете три строки образца данных в буфер обмена, выбрав их ниже и нажав C:

line1
line2
line3

, и вы хотите разделите их на переменные оболочки, как вы говорите:

para1=$(pbpaste | sed -ne '1p')

и проверьте:

echo "$para1"
line 1

Аналогично:

para2=$(pbpaste | sed -ne '2p')
para3=$(pbpaste | sed -ne '3p')

Или, если вы имеете в виду Вы хотите строки в массиве:

paras=( $(pbpaste) )
echo ${paras[0]}
line1

echo ${paras[1]}
line2

Или, если вы хотите l oop над элементами:

for p in "${paras[@]}" ; do echo $p; done
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...