bash_profile别名 - 用PWD打开Coda

时间:2011-10-06 19:15:25

标签: coda bash .bash-profile

我正在创建一个bash别名,所以我可以cd到一个给定的目录并运行一个打开pwd的命令。我的脚本运行得很好,但是当我抓住$ {pwd}时,它抓住了bash_profile文件的密码。如何让它抓住呼叫终端窗口的密码?

alias opencoda="osascript -e 'tell application \"Coda\"' -e 'tell document 1' -e 'change local path \"${pwd}\"' -e 'end tell' -e 'end tell'"

解 我不确定为什么上面给出了bash_profile目录,而这个目录是终端目录,但是仍然如此:

alias opencoda='osascript -e "tell application \"Coda\"" -e "tell document 1" -e "change local path \"${PWD}\"" -e "end tell" -e "end tell"'

我不得不更改周围的报价..显然还需要在那里保留双引号。

我写的另一个有趣的Coda bash脚本:

从当前目录中打开一个给定文件:

function coda() {  osascript -e "tell application \"Coda\"" -e "tell document 1" -e "open \"${PWD}/$@\"" -e "end tell" -e "end tell";}

例)coda myfile.txt

2 个答案:

答案 0 :(得分:2)

当你在双引号字符串中引用变量时,Bash会在那里替换变量的值。您需要做的只是逃避$,以便不进行替换。这样,当您运行opencoda时,Bash将在命令中看到变量引用$PWD,并在那时进行替换。

alias opencoda="... \${PWD} ..."

(顺便说一句,在我的电脑上只有$PWD [大写]有效。)

答案 1 :(得分:0)

我不确定这是做什么的,所以这是一个相当疯狂的猜测,但我会尝试转义变量$中的\${pwd}。然后在第一次解析时,.bash_profile会将它评估为${pwd},然后传递正确的变量。