1

最上位のターミナル タブ/ウィンドウの現在のディレクトリを取得したい (AppleScript などを介して、実際には問題ではありません)。どうやってやるの?

4

3 に答える 3

3

別の解決策。

get_foregroundterminal_curdir_fast.scpt:

tell application "Terminal"
    do shell script "lsof -a -p `lsof -a -c bash -u $USER -d 0 -n | tail -n +2 | awk '{if($NF==\"" & (tty of front tab of front window) & "\"){print $2}}'` -d cwd -n | tail -n +2 | awk '{print $NF}'"
end tell

自分自身を使用lsofして、対応するターミナル ウィンドウの bash シェルの PID を取得します。これは、fuser(ミリ秒対秒)を使用するよりもはるかに高速です。

于 2013-04-18T03:29:53.247 に答える
0

わかりました、私には1つの解決策があります。

get_foregroundterminal_proclist.scpt:

tell application "Terminal"
    do shell script "fuser " & (tty of front tab of front window)
end tell

get_foregroundterminal_curdir.sh:

#!/bin/bash

function pwdx {
    lsof -a -p $1 -d cwd -n | tail -1 | awk '{print $NF}'
}

for pid in $(osascript "$(dirname "$0")/get_foregroundterminal_proclist.scpt"); do
    pwdx $pid
    break # break on first
done
于 2011-03-13T15:51:35.620 に答える