gpt4 book ai didi

macos - 如何将变量从 applescript 传递到 shell 脚本?

转载 作者:行者123 更新时间:2023-12-04 13:55:21 25 4
gpt4 key购买 nike

我有以下脚本

 #!/bin/bash
/usr/bin/osascript << EOT
set myfile to choose file
EOT

no_ext=$(python -c "print '$myfile'.split('.')[0]")

### this works - just need to know how to pass the arg
R CMD Sweave no_ext.Rnw
pdflatex no_ext.tex
open no_ext.pdf

谁能指出我“如何正确传递变量 myfile”?

编辑
感谢所有建议!

不知道该接受什么,您的所有答案都对我很有帮助,因为我从每个人那里学到了很多东西。

最佳答案

您的脚本中存在以下问题:

AppleScript 部分中设置的变量确实在封闭的 shell 脚本中定义。您必须使用命令替换与 shell 脚本进行数据交换。

不允许从 shell 脚本调用的 AppleScript 进行用户交互,因为它们没有应用程序上下文。您可以使用辅助应用程序“AppleScript Runner”来运行用户交互命令。

这是您的脚本的修订版,其中修复了这些问题:

#!/bin/bash

myfile=$(/usr/bin/osascript << EOT
tell app "AppleScript Runner"
activate
return posix path of (choose file)
end
EOT)

if [ $? -eq 0 ]
then
echo $myfile
else
echo "User canceled"
fi

关于macos - 如何将变量从 applescript 传递到 shell 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3502913/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com