Eva*_*n S 6 macos shell applescript
我正在尝试使用以下命令创建AppleScript.我遇到的问题是第三行有错误.我lame直接在终端中使用该命令没有问题.此外,lame它不是原生Mac实用程序; 我自己安装了它.有人有解决方案吗?
do shell script "cd ~/Downloads"
do shell script "say -f ~/Downloads/RE.txt -o ~/Downloads/recording.aiff"
do shell script "lame -m m ~/Downloads/recording.aiff ~/Downloads/recording.mp3"
-- error "sh: lame: command not found" number 127
do shell script "rm recording.aiff RE.txt"
Run Code Online (Sandbox Code Playgroud)
补充Paul R的有用答案:
需要注意的是do shell script- 令人遗憾的是 - 看不到与$PATH创造的贝壳相同Terminal.app - 一个值得注意的缺席/usr/local/bin.
在我的OS X 10.9.3系统上,运行do shell script "echo $PATH"仅产生:
/usr/bin:/bin:/usr/sbin:/sbin
Run Code Online (Sandbox Code Playgroud)
有各种方法:
使用 Paul的解决方案中的可执行文件的完整路径.
/usr/local/bin$PATH如果你在一个do shell script命令中调用多个可执行文件,那么手动预备/追加(许多非系统可执行文件存在的地方)- 值得考虑; 例如:
do shell script "export PATH=\"/usr/local/bin:$PATH\"
cd ~/Downloads
say -f ~/Downloads/RE.txt -o ~/Downloads/recording.aiff
lame -m m ~/Downloads/recording.aiff ~/Downloads/recording.mp3
rm recording.aiff RE.txt"
Run Code Online (Sandbox Code Playgroud)
注意如何以上使用单个 do shell script带命令多个在一个命令单串-命令可以由换行或分离,如果在同一行,同;.
这比多次调用更有效,但do shell script建议在脚本代码内部和命令周围添加错误处理.
$PATH交互式shell看到的内容(除了在bash配置文件中添加的内容之外),您可以调用eval $(/usr/libexec/path_helper -s);命令字符串中的第一个语句.其他重要考虑因素do shell script:
bash被调用为sh,导致行为的变化,最值得注意的是:
<(...))不可用echo默认情况下不接受任何选项并解释转义序列,例如\n.shopt -uo posix; shopt -u xpg_echo;到命令字符串手动解决这些问题."C"区域设置而不是系统的区域设置 ; 修复它,手动预先添加export LANG='" & user locale of (system info) & ".UTF-8'到您的命令字符串.. ~/.bash_profile到命令字符串手动加载一个人的配置文件是很方便的; 但请注意,这会降低AppleScript的可移植性.do shell script命令参考:http://developer.apple.com/library/mac/#technotes/tn2065/_index.html
可能是一个PATH问题 - 使用跛足的完整路径,例如
do shell script "/usr/local/bin/lame -m m ~/Downloads/recording.aiff ~/Downloads/recording.mp3"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3766 次 |
| 最近记录: |