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 次 |
最近记录: |