我正在尋找一個終端命令,它將在我正在使用的當前終端中打開一個新選項卡。例如,我在 iTerm 2 中運行命令并在 iTerm2 中打開一個新選項卡,因為那是我正在使用的終端。
我知道如何通過命名靜態應用程式來打開選項卡,如下所示:
osascript -e 'tell application "iTerm" to activate' \
-e 'tell application "System Events" to tell process "iTerm" to keystroke "t" using command down'
但當然,如果我正在執行諸如從 mac 終端呼叫命令之類的操作,這仍然會打開 iTerm。我很想做類似下面的事情,但我不確定如何獲取我正在使用的終端的名稱。
currentTerminal = getCurrentTerminalApplicationName()
osascript -e 'tell application "&{currentTerminal}" to activate' \
-e 'tell application "System Events" to tell process "&{currentTerminal}" to keystroke "t" using command down'
我也對其他想法持開放態度。
uj5u.com熱心網友回復:
在macOS
終端內:
env | grep TERM
TERM_PROGRAM=Apple_Terminal
在里面iTerm2
:
env | grep TERM
TERM_PROGRAM=iTerm.app
更新
你總是可以做這樣的事情:
#!/bin/bash
if [ "$TERM_PROGRAM" == "iTerm.app" ]; then
echo "iTerm2"
cat <<EOF >/tmp/file.py
import iterm2
async def main(connection):
app = await iterm2.async_get_app(connection)
window = app.current_terminal_window
if window is not None:
await window.async_create_tab()
else:
print("No current window")
iterm2.run_until_complete(main)
EOF
$HOME/Library/Application\ Support/iTerm2/iterm2env-3.10/versions/3.10.4/bin/python /tmp/file.py
else
echo "not iTerm2"
fi
此代碼將在其中打開新選項卡iTerm2
- 否則,它將什么也不做。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/531241.html
標籤:苹果系统Unix终端
上一篇:如何分離兩個顏色值