Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AppleScript到Shell脚本_Shell_Applescript_Paragraph - Fatal编程技术网

AppleScript到Shell脚本

AppleScript到Shell脚本,shell,applescript,paragraph,Shell,Applescript,Paragraph,当我复制多段数据时,如 line 1 line 2 line 3 我可以通过AppleScript访问Mac上的剪贴板元素 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

当我复制多段数据时,如

line 1
line 2
line 3
我可以通过AppleScript访问Mac上的剪贴板元素

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
并将其写入自动机变量。我可以在Shell脚本中执行相同的操作吗?当我跑的时候

for f in "$@"
do
echo "$f"
done
似乎所有东西都存储在1美元中。 实际上,我不介意使用段落作为分隔符,而是使用类似{NEXT}或类似的可配置符号


提前谢谢你

您的示例似乎乐于将一行视为一段。所以,我也会这么做。因此,如果您通过选择下面的三行样本数据并按将其复制到剪贴板中⌘C:

您希望将它们分离为shell变量,如您所说:

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
或者,如果要在元素上循环:

for p in "${paras[@]}" ; do echo $p; done

您在哪里/如何运行shell脚本?它看起来根本没有查看剪贴板内容。它在Automator中,剪贴板是“作为参数”移交的。你的意思是想在shell脚本中获取Mac剪贴板的内容吗?不,我已经通过上面的代码或pbpaste将内容放在了shell中。我需要的是一种将剪贴板内容分解为段落的方法,就像苹果脚本代码一样谢谢!这已经很好了!老实说,我认为行是分隔段落的唯一方法。我真正想要实现的是通过{./Thunderbird-compose“to=$para1,subject=$para2,body=$para3”}将电子表格字段交给Thunderbird,但现在我意识到这会遇到麻烦,因为body有很多特殊的符号,包括段落。如果我将所有数据合并到一个电子表格单元格中,用分隔参数,有没有办法解决这个问题?例如:-对不起,我真的不明白你想做什么。有时候我觉得你在写Applescript,有时候我觉得你在写
bash
脚本,有时候我觉得你在写电子邮件。。。可能是使用Excel,而且还涉及到一个剪贴板。很抱歉造成混淆!事实上,以上所有内容都是正确的:我有一个电子表格(在线,而不是Excel),上面有客户数据,例如电子邮件、状态等。有了这些数据,我想自动生成电子邮件。数据会定期更改,因此不能选择导出。我认为剪贴板是一种动态提取数据的快速方法,而Automator是一种通过快捷键(Cmd+C-->剪贴板;Cmd+*任意*-->运行Automator并打开Thunderbird)处理数据的方法。我从AppleScript开始,但在使用快捷方式时遇到了错误212。因此,我现在尝试bash。
for p in "${paras[@]}" ; do echo $p; done