2

特定のディレクトリに cd して pwd を開くコマンドを実行できるように、bash エイリアスの作成に取り組んでいます。私のスクリプトはうまく機能しますが、${pwd} を取得すると、bash_profile ファイルの pwd が取得されます。呼び出し元の端末ウィンドウの pwd を取得するにはどうすればよいですか?

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"'

私は周りの引用符を変更しなければなりませんでした..また、そこに二重引用符を保持する必要があったようです。

私が書いたもう 1 つの楽しい 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

4

2 に答える 2

2

二重引用符で囲まれた文字列内の変数を参照すると、Bashはその場で変数の値を置き換えます。$置換が行われないように、をエスケープするだけです。そうすれば、を実行するopencodaと、Bashはコマンド内の変数参照を確認し、$PWDその時点で置換を実行します。

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

(ちなみに、私のコンピューターでは$PWD[大文字]のみが機能します。)

于 2011-10-06T19:24:08.350 に答える
0

それが何をしているのかよくわからないので、これはかなりワイルドな推測ですが$、変数内のをエスケープしてみます\${pwd}。次に、.bash_profileによる最初の解析で、それを評価し${pwd}、正しい変数を渡す必要があります。

于 2011-10-06T19:22:40.883 に答える