【发布时间】:2020-06-08 07:29:07
【问题描述】:
我在一个 bash 脚本中有这个,当我尝试运行它时,它给出的权限被拒绝。 我正在尝试创建一个从一个位置到另一个位置的 mac finder 快捷方式。
#!/bin/bash
`osascript -e 'tell application "Finder" to make alias file to POSIX folder` `"/Users/tcokimac/Desktop/GSuits Setup" at POSIX folder "/Users/tcokimac/Desktop/Copy To"'`
运行失败如下:
tcokimac@Teens-iMac-Pro ~ % /Users/tcokimac/Documents/shell\ scripts/createproject2.sh
zsh: permission denied: /Users/tcokimac/Documents/shell scripts/createproject2.sh
【问题讨论】:
-
为什么行周围有反引号?
-
很清楚,在一行周围加上反引号是command substitution;它告诉 shell 运行它的内容,但在这样做之后,将运行这些命令的进程写入的任何标准输出放入 new 命令并运行它。我不知道您的
osascript命令是否向标准输出写入任何内容,但如果确实如此,它会在osascript完成后运行 second shell 命令,这几乎可以肯定是您没有的行为真的想要。 -
一般来说,不是只包含
$(some-command-here)或其基于反引号的等价行,而应该只包含some-command-here。 -
见Is it OK for users to edit the accepted answer into their question?Meta Stack Overflow。将您的答案标记为已解决的正确方法是通过单击该答案旁边的复选框来接受描述该解决方案的答案(或者添加您自己的答案并在强制延迟后接受它,如果没有其他人添加正确的答案)。同样,How to treat an old question that has an answer edited into it?.
标签: shell