免费国产精品自在自线-91精品国产色综合久久久浪潮-99热久久免费频精品-国产精品国模在线观看-久久亚洲国产精品成人?V秋霞-久久国产一级A片免费播放-亚洲国产欧洲综合97久久-久久国产白嫩美女呻吟高潮

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

Mac終端自動(dòng)化:使用osascript實(shí)現(xiàn)任務(wù)完成后自動(dòng)關(guān)閉窗口

Mac終端自動(dòng)化:使用osascript實(shí)現(xiàn)任務(wù)完成后自動(dòng)關(guān)閉窗口 1. 一個(gè)看似簡(jiǎn)單卻暗藏玄機(jī)的自動(dòng)化需求在Mac上進(jìn)行開發(fā)或者日常腳本操作時(shí)我們經(jīng)常會(huì)遇到這樣一個(gè)場(chǎng)景你寫了一個(gè)腳本或者編譯了一個(gè)可執(zhí)行程序通過終端Terminal窗口來運(yùn)行它。程序運(yùn)行結(jié)束后終端窗口的任務(wù)就完成了但它并不會(huì)自動(dòng)關(guān)閉而是停留在那里顯示著最后的輸出結(jié)果和命令提示符。對(duì)于一次性的、運(yùn)行后無需交互的任務(wù)這個(gè)空置的窗口就顯得有些多余尤其是當(dāng)你需要連續(xù)執(zhí)行多個(gè)這樣的任務(wù)時(shí)屏幕上會(huì)留下一堆“僵尸”窗口既不美觀也影響效率。這個(gè)需求的核心就是“善后”——讓工具在完成使命后自行清理現(xiàn)場(chǎng)。比如你寫了一個(gè)自動(dòng)打包應(yīng)用并上傳到服務(wù)器的腳本或者一個(gè)定時(shí)清理日志的小工具。當(dāng)它們執(zhí)行完畢你希望終端窗口能自動(dòng)關(guān)閉讓桌面回歸整潔。這不僅僅是“懶人”的追求更是自動(dòng)化流程中“閉環(huán)”思維的體現(xiàn)一個(gè)完整的自動(dòng)化任務(wù)應(yīng)該包括啟動(dòng)、執(zhí)行和清理三個(gè)階段。乍一看這似乎是個(gè)小問題用個(gè)exit命令不就行了但如果你直接在腳本末尾寫exit你會(huì)發(fā)現(xiàn)它確實(shí)退出了當(dāng)前的Shell會(huì)話但整個(gè)終端窗口也隨之關(guān)閉了。如果你的腳本是你在一個(gè)已經(jīng)打開、正在使用的終端窗口里手動(dòng)執(zhí)行的這個(gè)行為就非常危險(xiǎn)——它會(huì)關(guān)掉你正在工作的整個(gè)窗口可能讓你丟失未保存的工作上下文。所以我們需要的是一種更“聰明”的方式只關(guān)閉由當(dāng)前腳本或命令所“創(chuàng)建”或“屬于”的那個(gè)終端窗口而不是無差別地關(guān)閉所有。這就是osascript登場(chǎng)的時(shí)候。osascript是 macOS 系統(tǒng)自帶的強(qiáng)大工具用于執(zhí)行 AppleScript 或 JavaScript 腳本從而與系統(tǒng)及其應(yīng)用程序進(jìn)行深度交互。通過它我們可以精確地告訴系統(tǒng)“找到運(yùn)行我這個(gè)進(jìn)程的終端窗口然后在合適的時(shí)機(jī)關(guān)閉它?!?這個(gè)需求背后涉及到進(jìn)程樹、窗口歸屬判斷和安全的系統(tǒng)交互遠(yuǎn)不止一個(gè)exit命令那么簡(jiǎn)單。2. 理解核心工具osascript 與 AppleScript 的威力要解決我們的問題首先得理解我們手中的“瑞士軍刀”——osascript。它不是一個(gè)獨(dú)立的編程語(yǔ)言而是一個(gè)命令行解釋器專門用來執(zhí)行 AppleScript (.scpt) 文件或直接運(yùn)行內(nèi)聯(lián)的 AppleScript/JavaScript 代碼。AppleScript 是 macOS 系統(tǒng)級(jí)自動(dòng)化的“官方語(yǔ)言”其設(shè)計(jì)目標(biāo)就是用接近自然英語(yǔ)的語(yǔ)法來控制應(yīng)用程序。為什么不用簡(jiǎn)單的 Shell 命令因?yàn)?Shell如 bash、zsh主要管理進(jìn)程和文件系統(tǒng)它對(duì)“應(yīng)用程序窗口”這種圖形界面層級(jí)的對(duì)象控制能力非常有限。而 AppleScript 可以直接與任何支持 AppleScript 詞典AppleScript Dictionary的應(yīng)用程序?qū)υ扵erminal.app 正是其中之一。通過 AppleScript我們可以查詢 Terminal 打開了哪些窗口每個(gè)窗口正在運(yùn)行什么進(jìn)程進(jìn)而執(zhí)行關(guān)閉窗口等操作。一個(gè)最簡(jiǎn)單的 AppleScript 關(guān)閉當(dāng)前終端窗口的語(yǔ)句是tell application Terminal to close window 1這條命令會(huì)關(guān)閉 Terminal 應(yīng)用最前面的那個(gè)窗口索引為1。但是這里有一個(gè)巨大的陷阱它關(guān)閉的是“最前面”的窗口而不一定是運(yùn)行我們腳本的那個(gè)窗口。如果你在運(yùn)行腳本時(shí)又點(diǎn)擊激活了另一個(gè)終端窗口那么被關(guān)閉的將是那個(gè)被激活的窗口可能導(dǎo)致誤操作。因此我們的腳本必須能精準(zhǔn)定位到自身所在的窗口。這就需要利用進(jìn)程IDPID。在 Unix/Linux 系統(tǒng)包括 macOS中每個(gè)進(jìn)程都有一個(gè)唯一的 PID。我們的 Shell 腳本在運(yùn)行時(shí)其進(jìn)程 PID 可以通過$$變量獲取。而 Terminal 窗口里運(yùn)行的 Shell又是 Terminal 應(yīng)用的一個(gè)子進(jìn)程。AppleScript 可以獲取 Terminal 窗口當(dāng)前運(yùn)行的進(jìn)程信息。思路由此清晰我們的腳本需要獲取自己的 PID然后通過osascript執(zhí)行一段 AppleScript 代碼讓 Terminal 應(yīng)用遍歷所有窗口找到那個(gè)正在運(yùn)行該 PID 對(duì)應(yīng)進(jìn)程的窗口然后關(guān)閉它。3. 方案設(shè)計(jì)與關(guān)鍵腳本實(shí)現(xiàn)基于上述原理我們可以設(shè)計(jì)出兩種主流方案。第一種是“自報(bào)家門”式腳本在運(yùn)行前就告訴系統(tǒng)如何關(guān)閉自己所在的窗口。第二種是“父進(jìn)程追溯”式由一個(gè)啟動(dòng)器腳本負(fù)責(zé)創(chuàng)建新窗口運(yùn)行任務(wù)并在任務(wù)結(jié)束后關(guān)閉該窗口。3.1 方案一在任務(wù)腳本內(nèi)部集成關(guān)閉邏輯這種方案將關(guān)閉窗口的代碼直接嵌入到需要運(yùn)行的任務(wù)腳本即可執(zhí)行程序或Shell腳本的末尾。其核心步驟是獲取當(dāng)前 Shell 的進(jìn)程 ID (PID)使用$$。構(gòu)造并執(zhí)行 AppleScript通過osascript -e執(zhí)行內(nèi)聯(lián)的 AppleScript 代碼讓 Terminal 查找并關(guān)閉運(yùn)行指定 PID 的窗口。一個(gè)基礎(chǔ)的實(shí)現(xiàn)版本如下#!/bin/bash # 這里是你的主要任務(wù)邏輯 echo 任務(wù)開始執(zhí)行... sleep 2 # 模擬一個(gè)耗時(shí)操作 echo 任務(wù)執(zhí)行完畢 # --- 關(guān)閉當(dāng)前終端窗口的邏輯 --- # 獲取當(dāng)前腳本的PID MY_PID$$ # 使用osascript執(zhí)行AppleScript來關(guān)閉窗口 osascript EOF tell application Terminal repeat with win in windows try -- 獲取該窗口當(dāng)前標(biāo)簽頁(yè)的進(jìn)程ID set tabProc to processes in selected tab of win if (count of tabProc) 0 then set theProc to item 1 of tabProc if theProc is ${MY_PID} then close win exit repeat end if end if end try end repeat end tell EOF腳本解析與注意事項(xiàng)MY_PID$$$$在Shell中代表當(dāng)前腳本進(jìn)程的PID。osascript EOF ... EOF這是 Shell 的“Here Document”語(yǔ)法用于將多行文本作為標(biāo)準(zhǔn)輸入傳遞給命令。這里傳遞的就是一段 AppleScript 代碼。tell application Terminal開始對(duì) Terminal 應(yīng)用進(jìn)行操作。repeat with win in windows遍歷 Terminal 的所有窗口。processes in selected tab of win獲取指定窗口當(dāng)前選中標(biāo)簽頁(yè)中運(yùn)行的進(jìn)程列表。在 AppleScript 中Terminal 的窗口、標(biāo)簽頁(yè)、進(jìn)程有明確的層級(jí)關(guān)系。if theProc is ${MY_PID}這是一個(gè)關(guān)鍵判斷。我們將 Shell 變量MY_PID嵌入到了 AppleScript 字符串中。如果找到的進(jìn)程 ID 與當(dāng)前腳本的 PID 匹配則執(zhí)行close win。exit repeat找到并關(guān)閉目標(biāo)窗口后立即退出循環(huán)提高效率。重要提示直接使用此腳本可能會(huì)遇到權(quán)限錯(cuò)誤。當(dāng)你首次運(yùn)行包含osascript控制其他應(yīng)用的腳本時(shí)macOS 的安全機(jī)制會(huì)彈出提示框“‘終端’想要訪問控制‘終端’。” 你需要點(diǎn)擊“好”來授權(quán)。這是一個(gè)一次性操作。如果是在自動(dòng)化工具如 cron, launchd或某些 IDE 中運(yùn)行可能無法點(diǎn)擊授權(quán)會(huì)導(dǎo)致腳本卡住或失敗。這是方案一在實(shí)際部署時(shí)需要考慮的。3.2 方案二使用啟動(dòng)器腳本更健壯、更安全方案一雖然直接但將關(guān)閉邏輯與業(yè)務(wù)邏輯耦合并且有權(quán)限彈窗的干擾。更優(yōu)雅和健壯的做法是使用一個(gè)“啟動(dòng)器”Launcher腳本。這個(gè)啟動(dòng)器負(fù)責(zé)打開一個(gè)新的、專用的終端窗口來運(yùn)行我們的任務(wù)腳本并在任務(wù)結(jié)束后關(guān)閉這個(gè)新窗口。這樣關(guān)閉操作由啟動(dòng)器發(fā)起目標(biāo)明確且不會(huì)誤關(guān)其他工作窗口。啟動(dòng)器腳本例如launcher.sh內(nèi)容如下#!/bin/bash # 定義要運(yùn)行的實(shí)際任務(wù)腳本路徑 TARGET_SCRIPT./my_task.sh # 使用 osascript 打開一個(gè)新的 Terminal 窗口并執(zhí)行任務(wù)腳本 # 命令執(zhí)行完畢后自動(dòng)關(guān)閉該窗口。 osascript EOF tell application Terminal -- 啟動(dòng)新窗口并執(zhí)行命令。do script 會(huì)執(zhí)行命令字符串。 -- 在命令末尾添加 ; exit 是為了讓該窗口的shell在執(zhí)行完任務(wù)后退出。 do script cd \$(dirname \${TARGET_SCRIPT}\)\ \${TARGET_SCRIPT}\; exit -- 設(shè)置新窗口在執(zhí)行命令完成后自動(dòng)關(guān)閉 set currentWin to front window set currentTab to selected tab of currentWin set shell to do script in currentTab -- 這行可能不需要取決于版本 -- 實(shí)際上上面的 do script 已經(jīng)在新窗口執(zhí)行了命令。 -- 關(guān)鍵技巧我們通過執(zhí)行一個(gè)包含 exit 的命令讓shell進(jìn)程退出從而觸發(fā)窗口關(guān)閉。 end tell EOF echo “啟動(dòng)器已完成新終端窗口已創(chuàng)建并執(zhí)行任務(wù)。”而我們的任務(wù)腳本my_task.sh則變得非常干凈只關(guān)注業(yè)務(wù)邏輯#!/bin/bash echo “這是真正的任務(wù)腳本...” # 執(zhí)行你的編譯、處理等任何操作 sleep 3 echo “任務(wù)完成” # 注意這里不需要任何關(guān)閉窗口的代碼方案二的優(yōu)勢(shì)分析解耦任務(wù)腳本無需關(guān)心窗口管理只負(fù)責(zé)業(yè)務(wù)符合單一職責(zé)原則。安全啟動(dòng)器腳本在當(dāng)前終端窗口運(yùn)行osascript它控制的是它自己創(chuàng)建的那個(gè)新窗口。即使有權(quán)限彈窗也是在當(dāng)前窗口的上下文中不影響新窗口任務(wù)的執(zhí)行。關(guān)閉操作目標(biāo)明確絕不會(huì)誤關(guān)其他窗口。靈活可以輕松修改啟動(dòng)器來改變終端行為如設(shè)置窗口標(biāo)題、尺寸、背景色等而無需改動(dòng)任務(wù)腳本??烧{(diào)試如果任務(wù)腳本出錯(cuò)你有時(shí)可能希望窗口保持打開以查看錯(cuò)誤信息。在方案二中你可以簡(jiǎn)單地在啟動(dòng)器里去掉命令末尾的; exit窗口就會(huì)在任務(wù)結(jié)束后保持打開。方案二的核心命令詳解do script cd \$(dirname \${TARGET_SCRIPT}\)\ \${TARGET_SCRIPT}\; exitcd \$(dirname \${TARGET_SCRIPT}\)\首先切換到任務(wù)腳本所在的目錄。dirname獲取腳本的目錄路徑$()是命令替換。這是為了保證任務(wù)腳本中的相對(duì)路徑能正確工作。邏輯與只有前一個(gè)命令成功cd切換目錄成功才執(zhí)行后面的命令。\${TARGET_SCRIPT}\執(zhí)行任務(wù)腳本。變量用雙引號(hào)包裹以防止路徑中有空格。; exit無論任務(wù)腳本成功與否都執(zhí)行exit命令退出新窗口中的 Shell。當(dāng) Shell 退出時(shí)Terminal 默認(rèn)會(huì)關(guān)閉該窗口除非在 Terminal 的設(shè)置中更改了此行為。4. 深入排查常見問題與實(shí)戰(zhàn)避坑指南即便有了清晰的方案在實(shí)際操作中你依然可能會(huì)遇到各種“坑”。下面我結(jié)合多年經(jīng)驗(yàn)梳理出幾個(gè)最常見的問題及其根因和解決方案。4.1 權(quán)限問題osascript想要進(jìn)行更改問題現(xiàn)象首次運(yùn)行包含osascript控制 Terminal 的腳本時(shí)系統(tǒng)會(huì)彈出提示“‘終端’想要訪問控制‘終端’。是否允許” 如果點(diǎn)擊“不允許”或者腳本在無頭環(huán)境無圖形界面下運(yùn)行腳本會(huì)卡住或失敗并可能在日志中看到osascript: execution error: Terminal got an error: AppleEvent timed out. (-1712)之類的超時(shí)錯(cuò)誤。根因分析這是 macOS 自 macOS Catalina (10.15) 引入的“隱私與安全性”強(qiáng)化的一部分特別是“自動(dòng)化”權(quán)限。任何應(yīng)用包括通過osascript腳本想要控制其他應(yīng)用都需要得到用戶的明確授權(quán)。這個(gè)權(quán)限是以“控制應(yīng)用”“被控制應(yīng)用”為組合進(jìn)行管理的。解決方案與實(shí)操心得手動(dòng)授權(quán)用于交互式環(huán)境第一次運(yùn)行時(shí)在彈出的提示框中點(diǎn)擊“好”。授權(quán)信息會(huì)存儲(chǔ)在系統(tǒng)設(shè)置 隱私與安全性 自動(dòng)化里。你可以在這里看到“終端”應(yīng)用允許控制哪些其他應(yīng)用包括它自己。一旦授權(quán)后續(xù)運(yùn)行就不會(huì)再?gòu)棿?。?duì)于自動(dòng)化部署如 CI/CD在無頭服務(wù)器或自動(dòng)化流水線中彈窗是不可能的。此時(shí)有幾種策略策略A預(yù)先授權(quán)。如果可能先在帶有圖形界面的同一用戶會(huì)話中手動(dòng)運(yùn)行一次腳本完成授權(quán)。然后自動(dòng)化任務(wù)使用同一用戶身份運(yùn)行時(shí)權(quán)限就已存在。策略B避免控制圖形界面。重新思考需求是否必須關(guān)閉窗口對(duì)于后臺(tái)任務(wù)可以考慮使用nohup或launchd將其作為守護(hù)進(jìn)程運(yùn)行完全脫離終端窗口。策略C使用更底層的機(jī)制。如果只是為了在任務(wù)結(jié)束后終止進(jìn)程樹可以考慮在啟動(dòng)器中使用 kill -TERM -$$之類的命令向進(jìn)程組發(fā)送信號(hào)但這通常不會(huì)關(guān)閉窗口只會(huì)結(jié)束進(jìn)程。個(gè)人踩坑記錄我曾在一個(gè) Jenkins CI 節(jié)點(diǎn)上部署此類腳本始終失敗。后來發(fā)現(xiàn)Jenkins 服務(wù)是以launchd管理的守護(hù)進(jìn)程運(yùn)行它根本沒有圖形會(huì)話上下文osascript的自動(dòng)化請(qǐng)求無處授權(quán)也無法完成。最終解決方案是放棄了關(guān)閉窗口的“潔癖”改為將腳本輸出重定向到日志文件并接受任務(wù)結(jié)束后終端窗口進(jìn)程空閑的狀態(tài)。這提醒我們自動(dòng)化方案必須考慮運(yùn)行環(huán)境。4.2 環(huán)境變量與路徑問題問題現(xiàn)象在新打開的終端窗口中運(yùn)行任務(wù)腳本可能會(huì)發(fā)現(xiàn)環(huán)境變量如$PATH,$JAVA_HOME與你在原終端中設(shè)置的不同導(dǎo)致命令找不到。根因分析通過osascript的do script打開的新終端窗口默認(rèn)會(huì)啟動(dòng)一個(gè)新的登錄 ShellLogin Shell或交互式 ShellInteractive Shell它會(huì)讀取其自身的初始化文件如~/.zshrc,~/.bash_profile。如果你在原終端中通過export臨時(shí)設(shè)置的環(huán)境變量或者你的初始化文件配置復(fù)雜可能導(dǎo)致新窗口的環(huán)境與預(yù)期不符。解決方案在啟動(dòng)器命令中顯式設(shè)置環(huán)境在do script的命令字符串里先設(shè)置必要的環(huán)境變量。osascript EOF tell application Terminal do script export PATH\/usr/local/bin:$PATH\ cd /path/to/project ./build.sh; exit end tell EOF使用絕對(duì)路徑在任務(wù)腳本中對(duì)所有命令都使用絕對(duì)路徑例如/usr/local/bin/python3而不是python3或者至少在腳本開頭顯式設(shè)置PATH。簡(jiǎn)化 Shell 初始化文件檢查~/.zshrc或~/.bash_profile避免其中有復(fù)雜的邏輯、交互式提示或依賴特定終端特性的代碼這些可能會(huì)在非交互式或自動(dòng)化上下文中引發(fā)問題。4.3 窗口匹配失敗與競(jìng)態(tài)條件問題現(xiàn)象方案一中的腳本有時(shí)無法關(guān)閉窗口或者錯(cuò)誤地關(guān)閉了其他窗口。根因分析PID 匹配時(shí)機(jī)問題AppleScript 獲取窗口進(jìn)程 ID 時(shí)你的腳本可能已經(jīng)執(zhí)行完畢并退出。此時(shí)窗口中的進(jìn)程 ID 可能變成了 Shell 的 PID例如zsh或bash而不是你腳本的$$。這就導(dǎo)致了匹配失敗。多標(biāo)簽頁(yè)干擾一個(gè) Terminal 窗口可能有多個(gè)標(biāo)簽頁(yè)。selected tab獲取的是當(dāng)前選中的標(biāo)簽頁(yè)。如果你的腳本運(yùn)行在非選中的標(biāo)簽頁(yè)或者在你腳本運(yùn)行期間用戶切換了標(biāo)簽頁(yè)就會(huì)導(dǎo)致查找失敗。窗口索引不穩(wěn)定window 1指的是最前端的窗口這個(gè)順序會(huì)隨著用戶點(diǎn)擊而動(dòng)態(tài)變化極不可靠。解決方案與強(qiáng)化腳本針對(duì)方案一我們可以編寫一個(gè)更健壯的版本解決 PID 時(shí)機(jī)問題#!/bin/bash # 主要任務(wù) echo “開始長(zhǎng)時(shí)間任務(wù)...” sleep 5 echo “任務(wù)結(jié)束?!?# 增強(qiáng)版關(guān)閉窗口邏輯 # 思路在腳本開始時(shí)保存窗口ID結(jié)束時(shí)用ID來關(guān)閉避免依賴PID。 # 但AppleScript對(duì)Terminal窗口的穩(wěn)定ID獲取較復(fù)雜。一個(gè)更實(shí)用的方法是“延遲關(guān)閉”。 MY_PID$$ osascript EOF tell application Terminal set foundWindow to missing value set myPID to ${MY_PID} -- 短暫延遲確保腳本狀態(tài)已更新 delay 0.5 repeat with win in windows try set tabProc to processes in selected tab of win if (count of tabProc) 0 then set procName to item 1 of tabProc as string -- 嘗試匹配PID也匹配進(jìn)程名如腳本名作為后備 if procName is equal to myPID or procName contains my_task.sh then set foundWindow to win exit repeat end if end if end try end repeat if foundWindow is not missing value then close foundWindow end if end tell EOF這個(gè)版本增加了delay 0.5給系統(tǒng)一點(diǎn)時(shí)間更新進(jìn)程狀態(tài)并且添加了用進(jìn)程名你的腳本名作為后備匹配條件。但請(qǐng)注意依賴進(jìn)程名也可能有重名風(fēng)險(xiǎn)。最根本的建議對(duì)于可靠性要求高的生產(chǎn)環(huán)境優(yōu)先采用方案二啟動(dòng)器模式。它從根本上避免了“尋找自己所在窗口”這個(gè)棘手問題轉(zhuǎn)變?yōu)椤瓣P(guān)閉我創(chuàng)建的那個(gè)窗口”邏輯清晰且穩(wěn)定。4.4 Terminal 應(yīng)用未運(yùn)行或意外退出問題現(xiàn)象腳本報(bào)錯(cuò)Application isn’t running。根因分析osascript的tell application Terminal要求 Terminal 應(yīng)用必須正在運(yùn)行。如果用戶完全退出了 Terminal腳本就會(huì)失敗。解決方案在 AppleScript 中處理這種情況。tell application Terminal if it is running then -- 你的關(guān)閉窗口邏輯 else -- Terminal都沒運(yùn)行自然沒有窗口需要關(guān)閉可以忽略或記錄日志 end if end tell或者更簡(jiǎn)潔地讓osascript自動(dòng)啟動(dòng)它tell application Terminal activate -- 這行會(huì)確保Terminal運(yùn)行并前置可能會(huì)干擾用戶 -- 然后執(zhí)行你的邏輯 end tell但activate會(huì)搶焦點(diǎn)可能不友好。通常如果你的腳本是通過終端運(yùn)行的Terminal 應(yīng)用肯定已經(jīng)在運(yùn)行了所以這個(gè)問題較少見但在通用函數(shù)中處理一下邊界情況是良好的編程習(xí)慣。5. 進(jìn)階技巧與替代方案探索掌握了基礎(chǔ)方案和避坑方法后我們可以看看一些更進(jìn)階的應(yīng)用場(chǎng)景和替代思路讓你的自動(dòng)化腳本更加完善。5.1 自定義新終端窗口的外觀和行為使用啟動(dòng)器方案的一個(gè)額外好處是你可以定制新打開的終端窗口。這可以通過在do script之前或之后執(zhí)行額外的 AppleScript 命令來實(shí)現(xiàn)。#!/bin/bash TARGET_SCRIPT./deploy.sh WINDOW_TITLE自動(dòng)化部署終端 osascript EOF tell application Terminal -- 執(zhí)行命令打開新窗口 do script cd \$(dirname \${TARGET_SCRIPT}\)\ clear echo 開始任務(wù)${WINDOW_TITLE} \${TARGET_SCRIPT}\; exit -- 獲取剛剛創(chuàng)建的前端窗口 set newWin to front window -- 自定義窗口屬性 set custom title of selected tab of newWin to ${WINDOW_TITLE} set background color of newWin to {0, 20000, 40000} -- 深藍(lán)色背景 set normal text color of newWin to {65535, 65535, 65535} -- 白色文字 -- 設(shè)置窗口大小像素 set bounds of newWin to {100, 100, 800, 600} -- 你也可以設(shè)置字體等但屬性名需參考Terminal的AppleScript詞典 end tell EOF這樣每個(gè)自動(dòng)化任務(wù)都可以有自己專屬顏色和標(biāo)題的窗口便于在多個(gè)任務(wù)并行時(shí)區(qū)分。5.2 使用open命令與-W標(biāo)志的替代思路除了osascriptmacOS 的open命令也是一個(gè)強(qiáng)大的工具。它可以用來打開應(yīng)用程序和文件。我們可以用它來打開一個(gè)新的 Terminal 窗口并執(zhí)行命令嗎可以但控制關(guān)閉的精度不如osascript。一種取巧的方法是#!/bin/bash # 使用 open 命令打開Terminal并執(zhí)行命令-W 參數(shù)等待打開的程序退出 open -a Terminal . # 這只是打開Terminal到當(dāng)前目錄無法直接傳遞復(fù)雜命令串。open命令直接傳遞復(fù)雜 shell 命令給 Terminal 比較困難。更常見的模式是如果你要運(yùn)行的是一個(gè).command文件可執(zhí)行的 Shell 腳本可以#!/bin/bash # 假設(shè) task.command 是你的任務(wù)腳本并且已具有可執(zhí)行權(quán)限 open -W -a Terminal task.command-W選項(xiàng)會(huì)讓open命令等待打開的應(yīng)用程序這里是 Terminal退出。當(dāng)task.command腳本執(zhí)行完畢并在末尾包含exit命令時(shí)Terminal 窗口會(huì)關(guān)閉open命令才會(huì)返回。這種方法更簡(jiǎn)單但靈活性較差且依賴于.command文件格式。5.3 整合到更復(fù)雜的自動(dòng)化流程中在實(shí)際的 DevOps 或復(fù)雜工作流中關(guān)閉終端窗口可能只是最后一環(huán)。你可能需要錯(cuò)誤處理任務(wù)腳本失敗時(shí)是否還要關(guān)閉窗口你可能希望保持窗口打開以便查看錯(cuò)誤日志。可以在啟動(dòng)器腳本中根據(jù)任務(wù)腳本的退出狀態(tài)碼 ($?) 來決定。# 在啟動(dòng)器命令中 do script cd /path ./task.sh; if [ \$? -ne 0 ]; then echo 任務(wù)失敗窗口將保持打開。; else exit; fi通知提醒任務(wù)完成后除了關(guān)閉窗口還可以發(fā)送系統(tǒng)通知。# 在任務(wù)腳本末尾或啟動(dòng)器邏輯中 osascript -e display notification 自動(dòng)化部署已完成 with title 任務(wù)狀態(tài) sound name Glass日志記錄將新終端窗口的所有輸出重定向到日志文件這樣即使窗口關(guān)閉也有記錄可查。# 在啟動(dòng)器命令中 LOG_FILE/tmp/auto_task_$(date %Y%m%d_%H%M%S).log do script cd /path ./task.sh 21 | tee \${LOG_FILE}\; exit5.4 一個(gè)綜合性的、健壯的啟動(dòng)器模板結(jié)合以上所有經(jīng)驗(yàn)這里提供一個(gè)我認(rèn)為更健壯、功能更全面的啟動(dòng)器模板smart_launcher.sh#!/bin/bash # smart_launcher.sh - 智能終端任務(wù)啟動(dòng)器 set -euo pipefail # 啟用嚴(yán)格錯(cuò)誤處理 TARGET_SCRIPT${1:-} # 從第一個(gè)參數(shù)獲取任務(wù)腳本 SCRIPT_NAME$(basename $0) LOG_DIR${HOME}/logs/terminal_tasks mkdir -p $LOG_DIR TIMESTAMP$(date %Y%m%d_%H%M%S) LOG_FILE${LOG_DIR}/task_${TIMESTAMP}.log # 參數(shù)檢查 if [[ -z $TARGET_SCRIPT || ! -f $TARGET_SCRIPT ]]; then echo 錯(cuò)誤請(qǐng)指定一個(gè)有效的任務(wù)腳本路徑作為參數(shù)。 2 echo 用法: $SCRIPT_NAME /path/to/your_script.sh 2 exit 1 fi TARGET_SCRIPT_ABS$(cd $(dirname $TARGET_SCRIPT) pwd)/$(basename $TARGET_SCRIPT) WINDOW_TITLE自動(dòng)任務(wù): $(basename $TARGET_SCRIPT) $(date %H:%M:%S) echo “啟動(dòng)智能啟動(dòng)器任務(wù)腳本$TARGET_SCRIPT_ABS” echo “日志文件$LOG_FILE” # 構(gòu)建要在新終端中執(zhí)行的命令 # tee 命令同時(shí)輸出到屏幕和日志文件exit $? 確保窗口關(guān)閉時(shí)的退出碼與任務(wù)腳本一致。 CMDcd \$(dirname $TARGET_SCRIPT_ABS)\ echo 任務(wù)開始 \$TARGET_SCRIPT_ABS\ 21 | tee -a \$LOG_FILE\; EXIT_CODE\$?; echo \ 任務(wù)結(jié)束退出碼\$EXIT_CODE \; exit \$EXIT_CODE # 通過 osascript 執(zhí)行 osascript EOF tell application Terminal if it is running then -- 創(chuàng)建新窗口執(zhí)行命令 do script $CMD set newWin to front window set custom title of selected tab of newWin to $WINDOW_TITLE set background color of newWin to {30000, 30000, 30000} -- 灰色背景 set normal text color of newWin to {0, 0, 0} -- 黑色文字 -- 可選激活窗口搶焦點(diǎn) -- activate else -- 如果Terminal沒運(yùn)行先啟動(dòng)它 activate delay 1.0 -- 等待Terminal啟動(dòng) do script $CMD in window 1 set custom title of selected tab of front window to $WINDOW_TITLE end if end tell EOF echo “啟動(dòng)器執(zhí)行完畢。任務(wù)已在獨(dú)立終端窗口中運(yùn)行日志已保存?!边@個(gè)模板包含了參數(shù)檢查、日志記錄、錯(cuò)誤碼傳遞、窗口定制和邊緣情況處理Terminal未運(yùn)行是一個(gè)可以直接用于生產(chǎn)環(huán)境的實(shí)用腳本。使用時(shí)只需執(zhí)行./smart_launcher.sh /path/to/your_task.sh即可。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
亚洲中文字幕AV| 9999久久久久| AV在线大香蕉| 五月婷婷六月丁香| 五六月丁香激情视频| A片女女女女女女BBBB| 激情五月婷婷综合视频| 欧美婷婷综合网| 天天婷婷| 婷婷丁香五月综合| www.minyis.com【JT】国内CDN落地页保证转化QQ2101460746 | 久久精品91视频| 啪啪色区| 五月丁香久久网| 丁香五月天之婷婷影院| 五月丁香六月婷婷的女人| 极品五月天| 五月婷婷五月| 色五月婷婷五月久久| 丁香六月婷婷基地| 五月丁香久久| www天天爽| 久久九精品| 大香网伊人久久综合| 欧美色骚婷婷五月天| 97超碰,人人舔,人人操,人人摸| 五月婷婷丁香色播网| 香蕉97碰碰碰超视精品| 久久综合九色综合97婷婷| www.五月天社区| 99久视频| 伊人狼人干| 丁香六月亚洲| 亚洲妇女熟BBW| 这里只有精品69| 精品99在线观看| 五月天激情视频| 婷婷激情综合| 丁香五月香蕉| 无码任你操| 亚洲黄色影视| 高清视频一区| 另类精品视频在线观看| 99久久婷婷五月综合| 婷婷五月天AV| 婷婷六月激情| 可以直接看的av| 日本本土色网第一区| 97人妻人人| 熟妇人妻中文字幕无码老熟妇| 综合99综合久久久久久久| 激情 五月 婷婷 丁香| 五月丁香在线观看| 狠狠干狠狠色| 丁香五月 无码| 激情综合女人网五月播播| 久久婷五月影院| 直接看的av| 色五婷婷开心缴| 人色五月天婷婷| 禁片二区| 亚洲AV无码成人精品区电影网| 五月天精品视频| 丁香激情综合| 色综合天天天天做夜夜| 欧美综合激情五月| 色婷五月| 五月花综合| www91精品| 超碰2021| 综合日本婷婷| 五月天婷婷社区久久综合| 五月J香蕉婷婷| 国产精品久久久久久亚洲毛片| 色三级色三级| 北京熟妇搡BBBB搡BBBB| 综合久久激情久久| 拍真实国产伦偷精品| 九月丁香欧美综合| 97干视频| 国产成人99久久亚洲综合精品| 亭亭丁香久久五月| 欧美性爱中文字幕| 日本精品人妻无码77777| 99热这里只有精品13| 色欲Av五月天| 热的无码综合视频| 六月婷婷色| 亚洲色情网站| www.色99| 婷婷六月丁香五月| 日本激情综合| 99五月婷| 五月天开心色情网| 天天日夜夜爽。| 另类综合激情| 五月婷婷在线视频| 久久婷婷五月综合色欧美| 婷婷成人基地| 丁香九月激情久久| 五月天激情图片| 九九人人看| 色婷婷操逼网| 在线国产精品色| 激情欧美婷婷| 丁香婷婷六月在线资源观看| 播播网色播播| 99热66| 五月丁香综合影院| 久久久久久人妻| 成人电影一区| 91日综合欧美| 五月丁香综合激情网| 久9久9热久热| 婷婷丁香激情五月天色色| 亚洲国产色婷婷| 艹| 久久九九精彩| av人人操| 色婷婷亚洲综合av| 99色综合网| 综合色五月天| 粉嫩av懂色av蜜臀av熟妇| 亚洲va综合va国产va中文| 国产成人精品一区二三区熟女在线| 在线18av | 91AV视频| 超碰91av| 色视五月天婷婷| 欧美婷婷五月| 成人在线99| 99热网精品| 五月丁香亚州综合网| 操逼123网| 五月丁香六月婷| 婷婷香五月综合激情| 99热最新国内| 免费亚洲成人电影AV| 免费视频舔| 日本乱子人伦在线视频| 国产毛多水多女人A片| 婷婷五月天激情在线| 丁香五月色综合色播五月| 九九无码| 任你操精品免费| www.久久99热地址发布| 激情五月丁香综合网站| 毛片九九九九九九九九18| 亚洲无码黄色| 婷婷激情五月色综合| 亚洲情色一区| 伊人久久大香蕉网| 欧美色色色色色色色色色色| 久热只有精品| 色色色色区| 丁香五月中文字幕久色| 99re8热精品免费视频| 天天日人人| 狠狠操狠狠操AV| 内射综合网| 偷拍五月丁香| 人人操人人操919999| 六月丁香激情| www.久久爱| 伊人五月天在线| 99a级片| 五月天六月婷婷电影| 五月婷婷久久久| 狠狠色丁香久久| www,天天干| 久久性刺激| 亚州精品成人片| 色丁香影院| 九97免费视频| 色啪影院| 丁香五月网| AV五月婷婷露脸| 91聚色综合网| 香蕉人在线香蕉人在线 | 亚洲aV写真天天综合网久久| 欧美97超碰| 色宗合久久五月婷婷| 色噜噜狠狠色综无码久久合欧美| 蜜臀av无码久久久久久久久| 熟女色色一区二区| 99九九视频| 香蕉久久六月| 亚洲精品字幕在线观看| 开心五月深爱婷婷| www.henhenl| 久久资源网五月婷| 九九热99精品在线| 99热这里有精品首页10| 九九99精品视频在线观看| 久色网| 久久机热/这里只有精品| 日本熟女啪啪| 内射综合网| 婷婷精品视频| 色婷婷av综合网| 在线综合网| 亚洲旡码| 丁香六月激情综合| 91婷婷五月天嫩女| 如何安全看伊人婷婷| 少妇高潮呻吟A片免费看软件| 国产精产国品一二三在观看| 五月激情影视| 婷婷丁香五月天小说| 欧美婷婷丁香五月| 五月天激情小说| 婷婷久久五月| 久久久大香蕉| 青青色com久久| 五月丁香黄色视频| 日本色五月婷婷| 操操操操操操婷婷五月天| 天堂成人A片永久免费网站| 99热这里只有精品 搜| 五月丁香综合成人社区| 五月J香蕉婷婷| 另类图片色五月| 亭亭五月激情亚洲在线| 丁香五月激情天AV无码| 六月婷婷九月丁香| 丁香五月天社区婷婷| 99自拍视频在线观看| 久久婷婷五月丁香| 亚洲成人影视在线| 亚洲综合热| 免费观看全黄做爰的视频| 婷婷亚洲影院| 丁乡久久| 久久婷婷五月天| 婷婷五月天小说网| 青草热视频这里只有精品| 人人综合91网| 涩丁香91| 国产精品久久久久久久久久| 丁香九月综合激情| 五月丁香六月婷婷综合| 日本五月丁香| www.99热| 日本在线观看91| 精品一区二区三区免费毛片爱| 五月开心久久| 狠狠色综合精品视频在线| 琪琪秋霞| 人妻久久婷婷| 综合色网站| 色婷婷呢狠禁久禁| 亚洲精品又粗又大又爽A片 | av网址在线播放| 综合另类视频| 亚洲无线视频| 五月天婷婷基地综合网| 91ncm视频| 操操操AV| 婷婷五月天成人在线视频| 五月婷婷成人| 九九干视频| 九九热99精品| 操逼视频一区| 久99视频| 九九re精品视频在线观看| 亚洲成人无码免费| 成人在线视频一区| 亚洲性爱电影| 爱性综合网| 99热碰碰热| 超碰91人人操| 这里只有精品在线视频精品| 五月丁香网av| 色色亚卅| 青草性爱视频| 久久亚洲色导航| 婷婷综合在线| 日日日,com| 九月婷婷久久久| 亚洲婷婷91丁香| 91色色色18| 一区视频网站| 色色热99| 香蕉视频91| 97久人人| 成片免费观看视频大全| 亚洲色色图片| 99成人小视频| 97操碰视频| 五月综合久久| 2025神马午夜福利| 99日精品视频| 狠狠色综合777| w婷婷五月婷婷w| 99亚洲欧洲| 超级碰碰99| 综合久久首页| 99久久免费性爱视频`| 91丨九色丨大屁股| 欧美激情五月| 色五月大香蕉| 五月丁香婷婷狠狠操| 极品人妻VIDEOSSS人妻| 天堂综合久久| 超碰AAAAAAV| 五月婷婷激情综合视频| 伊人久久婷婷| 日本三级第一页| 99五月婷| 99人妻碰碰碰久久久久禁片| 激情宗合网激情五月天| 狠狠干综合网| 天天撸夜夜爽| 久久婷婷内射| 不卡的AV网站| 亚州色婷婷| 性婷婷| 欧美五月丁香啪啪响视频| www.婷婷五月天啪啪| 99性爱视频网站| 91婷婷色五月| 五月丁香色停停啪啪啪| 这里只有精品亚洲| 久久五月天婷婷| 国产67194| 久久激情婷婷| 69午夜成人影片| 中文字幕 中文字幕明步| 99热国产这里只有精品| 超碰激情五月| 久久性爱网站| 一区二区乱码视频| 啪啪视频99| 色播丁香| 色久激情在线| 日批在线看| 26uuu成人网| 五月丁香成人网| 五月天婷婷激情网| 天天色天天色天天色天天色天天色| 五月丁香好婷婷A片网| 亚洲情综合五月天| 香蕉婷婷色五月| 第四色大香蕉| 任你日热视频| 丁香五月天综合| 蜜桃成语时李时珍 免费| 91久久精品无码一区二区三区| 久香草视频在线观看| www.色婷婷.com| 手机旧版看人妻1025| 亚洲性爱日韩无码| 99在线精品免费视频| AV无码免费| 色五月丁香伊人| 日产精品久久久久久久蜜臀| 亚洲成色综合网站免费观看| 丁香五月天天日| 成人 视频免费观看网站| 91人人人人人| 国产日日夜夜操| 久久综合影院 | 大香蕉综合在线| 99色人| 五月丁香久久呀| 久热这里只有精品99re| 久久激情婷婷| 亚洲va成人va成人va在线观看| 婷婷五月性感| 五月婷婷开心亚州在线| 五月黄色婷婷| 五月婷婷丁香俺日污视频| 涩丁香| 亚洲综合激情五月久久| 五月丁香婷草| 五月丁香婷中文| 色五月婷婷九月| 亚洲AV成人精品网站在线播放| 婷婷五月天 偷拍| 激情五月天电影| 九九99香蕉在线视频播放| 婷婷丁香六月影视| 日本强伦片中文字幕免费看| 色丁香婷婷美女视频网站| 一本大道嫩草AV无码专区| 亚洲综合视频天天精品| 日本片日本片祼观看网站在线看中文版网页在线看 | 综合欧美五月婷婷| 99精品网站| 超碰婷婷色| 99热九九在线| www99xxxx五月丁| 天天摸天天做天天爱天天爽| 久久综合性| 五月婷婷六月丁香| 无码激情精品色婷婷久久久久| 香蕉AV777XXX色综合一区| 中文无码精品一区二区三区| 五月婷av| 中文字幕综合| 亚洲五月天天| 亚洲av成人电影在线观看| 亚洲丁香五月天视频| 色色爽爽天天| 青草视频在线播放| 操97免费超级视频| 一个色的综合| 97极品在线| 99热.com| 五月人妻婷婷| 亚州综合色| www.婷婷.com| 97婷婷五月| 久久99精品久久久久久噜噜| 国产精品扒开腿做爽爽爽A片唱戏| 91人妻视频| 99热天堂| 激情五月婷| 久久网思思| 色婷婷色五月综合| 免费精品99| 色播五月婷婷五月| 袁子仪视频观看| 中文av在线观看| 婷婷五月综激情| 婷婷丁香久久五月综合| 国产精品99久久久久久猫咪| 亚洲性爱AV在线| 九九热精品视频在线观看| 丁香婷婷五月天色综合| 成人在线综合| 亚洲传媒在线观看| 狠狠综合网| 日撸夜撸日操| 亚洲综合网激情小说| 一区三区视频有限公司| 久久婷婷五月天丁香| 超碰成人免费| 五月天婷网| 欧美天天爽| 墨西哥毛片内射精| 超碰av在| 婷婷中文无码| 天天狠狠夜夜狠狠2023| 五月天激情开心网| 丁香婷婷激情五月色| 日韩久久色| 丁香婷婷五月综合欧美另类| 日木WWW视频| 丁香五月激情啪啪| 婷婷五月花| 一起草av| 天天综合精品| 亚洲va综合va国产va中文| 婷婷日日天天| 翔田千里无码| 精品人妻久久久久久久| 激情五月天免费视频| 成人av在线电影| 五月婷九九草| 激情五月瑟瑟| 91精品视频男人的天堂| 色色97丁香婷婷五月天| 日韩五月婷婷久久| 婷婷激情五月天激情小说| 五月天网址在线刘玥| 五月婷婷综合视频| 日本三级日本三级99| www.99视频| wwwC0maV五月花| www.色窝| 国产亚洲在线观看| 另类色网| 精品久热| 五月婷婷性爱| 伊人五月婷婷| 欧美日韩AAAAA| 性色欲情 网站| 超碰人人射| 亚洲三A| 丁香五月激情啪啪| 欧美人妻一区二区| 色综合色色| 色综合久| 久久99国产综合精品免费| 五月天色五月| 国产精品久久久久久久久久免费| 激情文学综合婷婷五月天丁香花| 激情五月天久久| 伊人高清无码| 另类婷婷五月天啪帕帕| 五月天怕怕| av成人在线播放| 五月色激情综合网| 9精品在线| 黄网网站在线播放| 激情99热| 婷婷六月综合在线| 激情九九综合网| 伊人五月成人| 色噜噜97视频在线观看| 激情五月婷婷| 依人大香蕉在钱1| 99re久热| 97成人视频| 亚洲免费视频网站| 五月婷俺去也| 色综色五月天婷婷| www.精品99| 国产69久久久欧美黑人A片| 十月丁香九月婷婷综合| 色色色在线观看| 99热精品在线观看| 色噜噜五月天| 色婷婷九月| 婷婷五月综合社区| 97一区二区| av在线激情| 九九热99精品| 综合色99| 久久久亚洲精品一区二区三区浴池| 婷婷五月丁香综合瑟瑟| 六月亚洲婷婷6月中文字幕| 丁香六月亚洲综合| 五月婷婷大香蕉| 婷婷久久婷婷| 天天日夜夜爽。| 精品久久99码| 久久五月天网| 五月天停停成人网| 五月丁香六月婷| 色综合中文| 五月婷婷之美女图片| 激情综合网五月激情| 综合激情九月婷婷,激情综合婷婷中文字| 天天肏夜夜肏| 五月丁香激情综合啪啪| 九九99偷拍视频| 婷婷激情丁香五月婷婷激情丁香五月婷婷 | 高清无码视频网址| 操日视频| 99爱无码| 色婷五月天| 欧美色宗和激情| 色婷婷婷婷五月天| 色亭亭九月| 插插插色综合网| 亭亭五月色男人| 欧美激情中文字幕| 草综合14| 99爱在线| 五月婷婷开心色伊人| 久草五月天| 99色在线观看视频| www.天天干| 亚洲欧洲一二| 这里只有精品无码| 欧美人人超级碰| www,26uuu,c0m,色情| 日本操B视频| 婷久看人爽| 国内外色色色色色成人视频| 九九热AV| 九九色图| 久久色天堂| 久久久久人妻| 婷婷色五月天色| 99愛国产| 亚洲AV久久久久久久久久久久久久久久 | 久久婷婷五月综合啪| 9|在线观看视频| 色永久| 六月丁花香啪啪激情欧美| 成人婷婷桔色| 国产精品久久久久久久久久| 狠狠干青青草| 亚洲人成播放网站| 五月花激情| 99九精品| 97婷婷狠狠| 五月丁香好婷婷A片网| www.五月婷婷.com| 狠狠搞五月天| 噜噜在线| 亚洲小说欧美激情| 五月婷婷丁香综合,亚洲天堂| 国产精品成人av在线观看春天| 在线免费视频caop| 亚洲操操操| 99噜噜| 97干欧美| 国产激情综合五月久久| 香蕉AV福利精品导航| 五月噜噜| 天综合日日夜综合7799| 亲子乱AV一区二区三区下载| 99这里只有精品国产| 搡BBBB搡BBB搡五十| 丁香五月23111| 无码九九九九| 婷婷五月色天| 天堂AV在线看| 五月丁香婷婷基地| 亚洲天堂婷婷丁香| 成人电影在线免费试看| 亚洲丁香婷婷五月天综合色| 九九色网专区| 大香蕉久久久| 五月激情偷拍婷婷| 成人网在线视频| 香蕉综合网| 亚洲综合干| 综合 蜜月 婷婷| 久久婷婷五月| 六月丁香社区| 激情婷婷五月亚洲| 午夜成人在线免费视频| 国产免费一区二区在线A片视频| 淫荡工a| 国产小网站| 久热免费| 操日挥操日日| 激情综合啪啪啪| 亚洲美女裸体被操在线观看| 大香蕉啪啪啪| 怡红院视频| 狠狠做五月| AV六月丁香| 97色碰| 精品久久久人妻| 色情综合网| 五月综合激情图片| 色婷婷成人做爰A片免费看网站| 裸体美女丁香五月天。| 五月丁六月香av| 日本一级| 日韩国产AV播放| 婷婷激情六月| 9热在线观看| 99视频精品8 | 亚州操人在线视频| 夜夜操少妇| 色色色999| 丁香五月手机视频| 天天色中文字幕女优AV| 天天做天天爱| 五月婷婷香| 久99久99精品免| 夜夜骑福利资源| 夜夜涩涩涩| 香蕉综合在线| 国产激情av| av在线不卡播放| 国产av天天插天天操天天爽| 中文字幕精品无码一区二区| 久热大香蕉| 97碰碰视频在线观看| 99久久五月婷婷| 这里只有精品9| 亚洲A片成人无码久久精品青桔| 91丨九色丨丰满人妖| 婷婷va| sewuyuejiqingwang| 色婷婷六月性| 日韩免费乱轮网站| 91丨九色丨东北熟女| 五月丁香六月婷婷成人| 久久婷婷人人| 婷婷激情六月综合| 婷久久| 六月丁香天堂| 久久久久久久久久婷婷| 欧洲区自拍| 97干资源在线观看| 国产a视频| 婷综合六月| 色婷婷AV久久| 色色影院黄大片| 停停六月 综合| 91丨九色丨老熟女激情| 人人草碰| 伊人三级激情| 操操自拍| 91九色精品女同系列| 9|无码久久久久久| 婷婷色色狠狠| 国产26uuu视频| 色噜综| 这里只有九九精品| 啪啪六月婷婷| 丁香五月天视频| 九九热大香蕉| www.激情五月| 无码AV免费精品一区二区三区| 天天操夜夜爽| 五月天四色房丁香亭亭| 九九精品综合| 久热91| 久机视频这只有精品| 亚洲天堂色色| 日韩AV免费电影在线播放| 老师高潮流白浆喷水的A片| wuyuedingxiang| 天天综合色丁香| 婷婷伊人| 狠狠狠狠狠狠狠狠狠狠狠色宗合图片| 精品少妇蜜臀91| 久久人妻乱| 开心五月婷婷激情| 亚洲字幕AV一区二区三区四区| 好吊兆人妻| 99热1| 这里有精品99| 五月天激情小说婷婷基地| 丁香五月成人av| 久久亚洲婷婷| 丁香情色五月| 色伊人婷婷| 欧美日韩国产一区二区| 久久这里只有欧美| 激情综合网五月天| 色综合色综合网| 99精品偷自拍| 五月婷婷婷综合网| 丁香大香蕉| 精品成人无码A片观看香草视频| 99热无码| 色婷婷狠狠久久综合五月| 日本91在线播放| 丁香婷婷五月六月久久| 婷婷五月免费观看| 国产.亚洲.欧洲视频在线| 婷婷久久综合久| 超碰成人在线免费观看| 欧美大奶熟女噜噜噜噜| 色级婷婷| 久草婷婷视频| 嫩草AV久久伊人妇女超级A| 伊人五月天婷婷| 五月婷婷激情综合| 婷婷五月丁香激情图片| 日本怕怕视频| 超碰97免费在线| 九九99精品视品| 人人草成人视频| 伊人色综合久久久| 91传媒无码人妻精| 提提热五月天婷婷| 在线中文字幕视频| 超级碰碰视频无码| 天天操天天操天天操| 亚洲操逼片| 亚洲天堂青草| 中文不卡一二三区| 天天影院色| 99热在线看| 白天AV月月| 婷婷丁香五月激情| 黄色精品五月婷婷| 色中色综合| 久久无码成人| 五月丁香成人日| 色色激情五月天| 伊人玖玖婷婷| 天天爽夜夜爽夜夜爽精品视频| A片试看50分钟做受视频| 婷婷导航| 五月婷婷六月丁香在线视频免费在线观看| 午夜69成人做爰视频| 久久性爱视频| 亚洲旡码| 色婷婷影音| 婷婷五月天天aV| 亚洲精品V天堂中文字幕| Se.婷婷五月天| 婷婷五月天久久| 激情久久综合| 99热综合| 久久婷婷国产| 久婷| 伊人激情综合| 无码色色| 91碰人人| www,五月天激情| 超碰在线观看三级片| 亚洲丁香五月美女| 极品人妻VIDEOSSS人妻| 色婷婷婷婷成人网| 成人做爰A片免费看视频| 狠狠色丁婷婷日日,伊人激情综合网| www.狠狠| 成人片在线播放| 狠狠色丁香| 综合亚洲色色| 99热在线观看| 亚洲男人的天堂婷婷色五月| 67194中文在线| av操一操| 日韩xx在线| 操日视频| 婷婷五月网图片区| 日韩成人网址| 婷婷丁香五月激情综合站_久久五月丁香激情综合_开心五月综合激情综合五月_婷 | 久久九⑨| 婷婷五月情色| 91夫妻视频| 婷婷六月视频| 午夜婷婷久久| 99热网站| 婷婷五月天成人动漫 | 色五月大香蕉| 人妻 性久久久久久| 最新婷婷五月丁香| 五月婷婷亚洲| 丁香婷婷五月激情| 天天日日夜夜| 天天干天天射综合网| 色婷大香蕉| 色噜噜狠狠色综合成人99| 99欧美| 九九Av| 婷婷五月天亚洲激情戏精品| a毛片二逼wwwwwwwwww| 操97免费超级视频| 思思久久精品视频| 久久国产高潮白浆免费观看99| 婷婷丁香花五月天| 婷婷丁香成人在线视频| 久久九九囯产| 激情影院丁香五月| 婷婷久久亚洲| 色综合网上班开心婷婷久久| 日韩青青| 操日视频| 亚洲精品操一操、噜一噜、摸一摸、爽 | 99爱视频在线观看这里只有精品| 色综合性视频| 99久久99视频| 免费视频在线观看的网站| 狠狠操狠狠操AV| 天天操天天日天天爱| 五月停性愛| 丁香婷婷久久 | 日日撸夜夜操| 91操色| 九九色video| 一级性爱视频| 高清无码视频网址| 99视频地址| 91色吧网| 国产精品久久久久久妇女6080| 久久丁香五月天| 很很操96| 国产小网站| 国产在线aaa片一区二区99| 五月综合色| 丁香花五月天| 久久婷婷色| 欧美人人超级碰| 中文字幕精品无码一区二区| 伊人网碰碰| 开心激情网五月| 99色啊| 欧美视频五区| 涩婷婷视频快播人妻| 国产乱子轮XXX农村| 操操自拍| www.夜夜.com| 色播五月婷婷综合| 任你擦免费视频| 亚洲狠狠终合停停终合| 婷婷色婷婷| 狠狠操综合| 狠狠干综合| 激情五月天伊人影院| 无码婷婷五月天| 婷婷丁香色五月天久久88| 久久色天堂| 伊人狠狠色婷婷综合丁香一区| 97碰碰叉| 国产精品99久久久久久久女警| 俺去也综合| 婷婷性爱影院| 九九自拍网| 久久久久久人妻| 五月综合无码| 思思热在线播放| 色婷婷裸体色性在线| 丁香五月中文字幕久色| www.av骚货| 中文字幕色色色| 天天综合永久| 99久久久| 99亚洲色色| 欧美激情-区二区三区| 色五月成人在线| 国产精品蜜臀99| 五月天激情网页| 99热99这里只有精品| 亚洲最大五月六月丁香婷婷| 五月丁香婷婷俺| xxx.色婷婷| 婷婷五月天国产| 婷婷五月综合网| 亚洲啪啪啪啪| 日韩无码成人电影| 亚洲国产精品二二三三区| 4399啪啪视频| 最新日韩AV中文字幕| 激情婷| 九九九九九九综合| 91九色 婷婷| 婷婷综合亚洲| 五月激情啪啪| 激情99热| 五月丁香六月婷婷a v| 色丁香影院| 五月天婷婷小说| 色色色国产| 欧美这里只有精品| 江苏少妇性BBB搡BBB爽爽爽| 99热黄| 男人的天堂97| 99超级碰免费视频| 五月天婷五月天综合网在线观| 六月婷婷七月丁香| 婷婷狠狠操| 婷婷五月天色| 国产无套精品一区二区| 成人国产网站| 99综合| 成人小说 五月天 婷婷| 久久综合天天综合| 天天日日夜夜| 97干在线| www,99视频| 超碰国产av| 婷婷天天插天天爱| 久久综合人妻| 激情丁香五月天| 91碰免费视频| 九月婷婷久久久| 99性感视频| 色热久| 日本精品人妻无码77777| 久久aaaaa| 五月亭亭六月色| 伊人五月成人| 99色在线| 91熟妇大香蕉| 色色综合色视频| 丁香五月婷在线观看| 婷婷五月天久久| 综合久久五| 婷婷色情网| 五月天激情小说婷婷基地| www.五月天色色.com| 国产亚洲精品久久久久久久久动漫| av成人在线播放| 高清激情av在线观看| 婷婷综合五月色播| 看片视频在线免费日产在线看| 青草激情在线| 五月天 婷 欧美亚洲| 国自产拍偷拍精品啪啪一区二区| 91丨九色|PRNY熟妇| 色播六月| 综合激情五月天六月婷免费视频| 99在线观看视频免费| 亚洲五月色| 五月丁香| 日本波多野结衣视频| 日本老女人黄页在线播放| 丁香五月六月激情久久| 欧美综合123区| 操逼视频网址| 婷婷色婷婷亚洲成人| 天天摸天天舔| 五月天婷婷青青草| 六月婷婷六月天天在线免费| 激情五月天小说| 成人国产欧美大片一区| 97人人爱人人操| 性色视频| 色五月激情五月| 伊人大蕉香| 九月婷婷丁香| 99热免费| 五月婷久久综合| 九色视频这里只有精品| 五月婷婷第四色| 99自拍视频在线| 国产成人+综合亚洲+天堂| 免费播放99性爱视频| 久草热8精品视频在线观看| 99色色网| 丁香婷婷激情网站| 青青草大香| 丁香六月 人妻| 亭亭色色五月天| 色噜噜五月天| 丁香五月综合久久综合| 99热免| 亚洲综合色婷| 欧美日韩成人| 99热这里只有精品2| 超碰二区| 五月天激情子轮| 丁香五月婷婷综合啪啪| 亚洲狠狠婷婷综合久久久| 午夜成人AV在线| 婷婷丁香五月天影院| 午夜九九电影| 国产毛片精品一区二区色欲黄A片| 26uuu国产色| 久碰婷婷视频| 玖玖爱综合网| AV电影在线播放| 丁香五月 无码| 99精品在这里| 人碰91| 日本性激情色播| 蒲京久久无码视频| 26UUU欧美| 五月综合激情啪啪啪啪啪| 精品一区二区三区木瓜| 人碰人人人玩91| 久久精品小视频| 婷婷五月激情基地| 婷婷五月天小说网| 日本97在线观看| 色五婷婷开心缴| 99re热在线观看| 五月丁香影视| 色五月婷婷在线| av在线免费播放| 丁香九九九九| www.婷婷| 啪啪夜久久| 亚洲精品亚洲人成人网| 超碰三级秋霞| 天天色99| 91精品婷婷国产综合久久| 丁香五月婷婷影院| 婷婷综合五月天| 综合网五月| 婷婷五月俺要去| 五月婷婷影院| 99r这里| 激情综合网色五月| 伊人婷婷五月天| 丁香五月激情婷婷视频| 精品国产AV色一区二区深夜久久| 成人网站免费sxj| 日本天堂久久| 五月天激情久久| 久婷婷五月丁香在线观看| 色综合久久久综合久久网| 日本色婷婷| 五月丁香毛片| 色婷婷电影网| 99视频网| 激情5月婷婷| 亚洲人成色A777777在线观看| 97成人丁香婷婷| 欧美成人精品A片免费一区99| 深爱激情丁香五月| 亚洲精品成人| 五月丁香免费看| 91疯狂操操操操| 最近中文字幕2019视频1| 久久婷婷综合五月趴| 九月丁香亭亭| 99热伊人| 天天操天天操天天操天天操天天操天天操| 26uuu精品一区二区| 色优久久| www.夜夜.com| 婷婷五月大| 大地资源色婷婷视频在线| 天堂综合久久 | 久久久噜噜噜久久人妻| 思思热国产视频| 色99无码| 综合网啪啪| 色色亚卅| 五月丁香六月香香蕉| 狠狠干狠狠色| 久久大香蕉同僚| 3www激情| 91人碰| 中文字幕 中文字幕明步| 99精品在线观看视频| 色婷婷久久综合久色| 97五月婷婷| 热99色| 亚洲精品视频在线播放| 天插天啪天啪天啪| 久碰视频| 丁香五月婷婷亚洲另类| 99日韩| 婷婷五月天天爽| 丁香激情婷婷网| 丁香五月婷婷黑人妻黄色电影院| 97婷婷丁香五月综合| 北京熟妇搡BBBB搡BBBB| 久久99热在线观看| 五月开心婷婷| 久久成人性爱| 色婷婷yy久| 丰满少妇乱A片无码| 五月天激情婷婷| 色五月激情网| 99色性爰网络| 九九热手机在线视频| 丁香 婷婷五月| 91丁香五月| 亚洲AV永久无码影院黑人| 99年操人人爽| 五月天婷婷久久| 激情六月一二| 播五月丁香六月| 婷婷丁香激情五月天色色| a网站免费观看| 综合色99| 五月综合丁香婷婷| 在线综合亚洲欧美65| 天天在线天天综合网色| 激情综合在线观看| 五月激香蕉网| 97亚洲视频在线| 少妇水多A片太爽了| 五月天激情视频网站| 中文字幕性爱丰满| 丁香五月婷婷色| 狠婷婷五月| 色婷婷深爱五月| 丁香婷婷久久激情| 丁香六月 人妻| 99人人操人人操人人精| 五月天久久网站| www.maotanji.com| 9久国产精品| 婷婷五月天综合AV| 婷婷五月天激情电影| 伊人色综合影院视频| 五月婷婷玖玖综合玖玖爱| 少妇高潮呻吟A片免费看软件| 夜夜嗨一区二区三区直播内容| 国产精品天天狠天天看| 婷婷99狠狠| 97黑人精品区| 狠狠五月丁香色婷| 久久av电影| 五月婷婷九| 青草视频在线蜜臀| 五月婷在线视频免费播放| 五月婷婷丁香色播网| 五月天伊人网| 天天操综合网站| 六月婷婷色综合| 乱码操操| 秋霞成人毛片一级A片| 亚洲一区国产传媒| 日本女人久久| 天天色天天爱天天爱天天爱y| 婷婷六月丁香五月| 久久久www| 欧美三日本三级少妇三99| 色情综合网| 精品亚洲国产成AV人片传媒| 最熟少妇乱码| 99视频日韩| 久久五月网| 天天草婷婷五月| 天天夜天天色天天| 丁香激情综合| 黄色三级日本| 日韩一区二区A片免费观看| 91久久久久久久久久18| 射琪琪| 国产婷婷综合在线免费视频| 激情AV| 97久久草草超级碰碰碰| 思思热思在线精品视频| 婷婷六月激情综合| 99亚州综合精品成人网| 99久久网站| 五月天久久小说| 超碰人人艹| 激情婷婷内射| 激情五月小说婷婷| 精品久久人妻| 热久久这里只有三级视频| 婷婷综合偷拍| 亚洲精品操一操、噜一噜、摸一摸、爽 | 超碰成人影视| 俺去婷婷 丁香| 欧美在线视频99| 亚洲aV写真天天综合网久久| 日日天天干| 天天爽天天爽| 99热在线看片| 色婷婷影音| 天天摸天天舔| 日本少妇裸体做爰高潮片 | 欧美成人精品A片免费一区99| 嫩草视频。| 婷婷欧美偷拍综合| 人人操超踫| 直接看的AV| 久久五月天激情婷婷| 五月色婷婷综合色| 六月婷婷久久大全| 五月天偷拍| 91玖玖| 五月色色色| 综合一本道| 国产成人片| 婷婷五月电影院| 五月天伊人综合| 丁香五月天啪啪| 六月激情婷婷综合| 五月综合六月婷婷| 狠狠干综合| 五月婷婷狠狠久久| 26uu| 久久婷婷五月综合| 日韩无码人妻一区二区| 99惹在线精品免费观看| 五月综合丁香婷婷| 超碰在线94| 婷婷五月丁香综合人妻| 丁香五月综合婷婷| 啪精品| 五月婷婷五月天亚洲无码| 久久综合99| 久久久久久久8| 天天日天天爱天天噪| 久久一级AV| 五月色情网| 国产精品色婷婷99久久精品| 色色色色色日韩午夜激情 | 超碰色色综合| 九九婷婷五月天| 五月天激情四射| 婷婷丁香六月天| 天天操九九插| 国产精品涩涩涩视频网站| 色八月婷婷| 五月丁香网站| 黄色91在线观看| 色色色色色色色色网站| 成人国产网| 激情啪啪五月天| 婷婷久久五月天| 综合丁香婷婷五月天| 天天玩夜夜操| 丁香九月综合| 91丨九色丨丰满人妖| 六月丁香婷婷色狠狠久久| 女人天堂AV| 亚洲婷婷基地| 色播播婷婷| 免费97碰碰| 啊v视频在线观看|