99精品久久精品一区二区-亚洲熟妇无码?v在线播放-日本国产精品无码字幕在线观看-久久久亚洲永夜AV-亚洲一级无码一区二区一-免费国产成高清人在线视频-中文字幕乱码免费观看-国产毛片精品妇女久久久

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
返回資訊列表
色婷久| 精品一二三区久久AAA片| 婷婷色在线视频| 色综合色五月| 亚洲色婷婷五月| 久久婷婷色色| 天花AV无码| 婷婷丁香18| 狠狠五月天激情| 日韩人妻在线观看| 久久无意婷婷| 91色综合网站在线| 国产99热| 天天插综合网| 日良久久| 亚洲V国产V欧美V久久久久久| 婷婷综合激情| 婷婷五月天在婷| 久99综合婷婷| 五月天婷婷激情在线色图| 五月色影院| 99综合色| 六月丁香社区| 就爱射中文字幕资源网| 97丁香花五月天激情小说| 婷婷基地成人五月天| 日本三级中国三级99人妇网站| 婷婷五月天电影在线| 久久婷婷色色| 高清免费在线视频| 五月开心播播网| 国産精品| 97在线碰| 精品色| 九色无码| 9热视频在线观看| 亚洲综合婷婷六月丁香五月| 婷婷之六月丁香| 人妻操逼视频。| 涩涩婷婷五月| 亚洲狠狠婷婷| 激情丁香九九五月综合网| 老美AA片| www九九免费视频| 五月天婷婷成人网| 六月婷婷综合| 丰满少妇猛烈A片免费看观看 | .精品久久久麻豆国产精品| 99热.com| 五月激情综合网| 亚洲狠狠操| 婷婷趴趴| 狠狠色噜噜狠狠狠狠综合| 九九综合五月欧美| 99热销国产这里有精品| 26UUU欧美激情一区二区| 秋霞av不能| 色在线免费观看| 丁香六月婷婷缴情欧美| 996热re视频在线观看视频| 日本欧美成人片AAAA| 伊人五月综合网| 成人AV免费观看| 久久婷婷91| 国产毛片精品一区二区色欲黄A片| 丁香美女主播视频在线观看 | 99ri精品视频在线观看| 久久99久久99精品免视看婷| 天天干夜晚夜操| 欧美综合五月丁香六月婷| 国产婷婷五月在线视频| 99九无网码| 激情第四色| 99热这里只有精品中文字幕| 久色视频| 大香久久综合网| 五月天伊人久久| 色五月欧美| 非洲一级AV| 久久九九@| 久久婷婷五月天激情四射| 精典久久| 九九热99精品| 婷婷五月天成人网| 2018国产大陆天天弄| 国产XXXX搡XXXXX搡麻豆| 天堂伊人干| 日本三级99人妇网站| WWW.HENHENL.| 欧美日韩成人在线| 综合色激情| 久久久久久久人妻| 国产熟妇乱子伦hd| 丁香五月综合网| 中文av网站| 青草青草视频2免费观看| 久久综合九九| 亚洲爱婷婷| 98色花堂98t.R| 色婷婷婷婷| 青青草a在线| 婷婷久久婷婷色五月| 五月色 亚洲| 在线可以看的av网址| 天天综合网在线| 婷婷在线视频| 97成人视频| 亚洲午夜AV| 五月开心婷婷| 激情综合网五月天| 综合aV在线| 日本97久久久精品| RenRenSe在线视频网站| 久久婷狠狠色| 狠狠色噜噜狠狠亚洲A∨| 久9免费视频| mmm1717.6dbm人人爱人人操| 女人天堂久久| 久婷狼色诱惑在线| 9久久精品| 国产亚洲精品久久久久久豆腐| 亚洲中文字幕翔田千里| 丁香婷婷丁香五月欧美人| 青娱乐美女福利视频美臀| 九九精品视频在线观看| 欧美电影在线播放| 婷婷激情综合网| 婷婷色丁香五月| 丁香婷婷91在线观看视频| 日韩中文欧美| 色优久久| 另类小说色婷婷| 99精品偷自拍| 这里只有精品在线视频精品| 五月丁香婷婷在线| 激情婷婷网| 日本色婷婷五月天成人电影| 丁香桃色网| 丁香五月亚洲综合| 婷婷丁香人妻| 99综合网| 九九干视频| 亚洲国产成人裸舞| 开心激情站| www.婷婷.com| 少妇人妻人伦A片| AⅤ网站在线看| 一起草Av| 丁香五月激情啪| 国自产拍偷拍精品啪啪一区二区| 噜一噜免费视频| 久久99精品久久久久久三级| 久久日韩婷婷五月| 天天日综合| 亚洲欧美在线观看| 国产精产国品一二三在观看| 五月综合亚洲色| 天天综合网站| 狠干综合| 99在线精品视频| 另类在线免费视频| 天天艹天天色| www,奇米影视| av人人操| 91狼友视频在线观看| 六月丁香五月激情亚洲AV| 色吧婷婷| 久久9久| 成人色图情色成人网 www.5b5b5bcom 五月天| 久久9热好| 99亚洲综合| 婷婷色片| AV在线观看网站| 天天噜| 国产av第一专区| 五月亚洲激情| 怡红院AV亚洲一区二区三区H| 日韩免费乱轮网站| 中文字幕人妻熟女在线| 色情五月天首页| 色色色欧美| 色噜噜狠狠色综| 久久色亭亭五月天| 9精品在线| 婷婷五月综合色拍| 99热网站| 97色婷婷| 婷婷五月综合激情免费| 九九综舍久久| 超碰碰碰碰| 五月激情啪啪啪| 97AV在线视频| 欧美性爱五月天| 丁香五月综合| 国产午夜精品一区二区三区四区| 91精品国产综合久久密臀| 久久全意婷婷| 天天干天天拍| 这里都是精品99| 色色色网站| 激情五月丁香综合蜜桃| 色五月美女| 噜噜网免费视频| 色综合77777| 五月天色裸体视频| 99视频在线播放大全| 在线成人网址| 色色色.com| 色婷婷亚洲综合天堂| 色五月婷婷影院| 色天堂97| 99精品视频在线观看| 色高清无码视频| 9视频在线成人网站| 色婷五月天激情| 九九久久高清| 丁香九月激情| 日婷婷久久开心| 91精品婷婷国产综合| 五月丁香婷婷欧美| 99乱视频| 开心亚洲久久开心| 91精产一区三区免费观看| 91美女被操| 96人人操人人操人人| 亚洲六月色| 婷婷基地爱| 九色91美女| 91超碰人人操| 99熟女啪啪视频| 综合激情站| 五月丁香久久久| 五月天婷综合| 国产黄大片在线观看画质优化| 黄色AAAAA| 五月丁香最新| 大地9中文在线观看免费高清| 五月婷婷综合精品| 欧美成人无码高清一区二区三区| 亚洲成人在线观看网址| 久久久久久久人妻| av在线免费播放| 天天操天天操综合| 亚洲激情视频在线观看| 激情五月天婷婷丁香| 亚洲无码色色| jiZZdr| 久久久久久xxxxx| 激情网色五月| www.色五月| 亚洲成人av在线播放| 成人色情五月天婷婷丁香| 67194中文在线| 91色噜噜狠狠狠狠色综合| 巴基斯坦粉嫰无码视频| 、激情六月天| 日韩av在线电影| 久久R激情| 99热这里只有精品1| 玖玖伦理电影| jiujiu热在线视频| 日韩另类在线观看| 久久网址99热| 亚洲岛国电影| 免费黄网不卡AV| www,天天干| 日本www五月婷婷| 色婷婷成人网| 亚洲mm色| 久热这里只有精品在线观看 | 婷婷色婷婷| AAA久久| 高清无码网址| 五月天啪啪| 热这里只有精| 人人操Av| 丁香五月天信号| 97精品在线| 青青草婷婷久久| 国产五月视频| 五月天丁香婷婷网| 久久综合99综合| 五月综合视频| 99性爱| 国产精品久久..4399| 久久开心五月天激情| 五月丁香婷婷久久| 综合久久丁香婷婷,五月婷婷六月丁香,开心激情综合网,六月丁香在线观看,婷婷丁 | 婷婷六月激情综合| 婷婷五月天综合色| 丁香色五月婷婷91桃色| 久久AV电影| 26UUU亚洲欧美| 在线区区区| 日日干五月天婷婷| sesesesezonghe| 变态另类9| 五月婷婷六月丁香玖玖玫瑰91| 色婷婷在线电影| 亚洲最大成人综合网720P| 狠狠操狠狠操AV| 九九久久综合| 六月亚洲婷婷6月中文字幕| 九月激情网| 中文资源在线a | 狠狠综合网| 婷婷丁香人妻天天爽| www狠狠| 日本天堂爱爱| 久久a热| 五月香婷婷| 丁香六月激情综合| 婷婷色色综合| 久久久久九九九九视屏小说88| 五月天大香焦| 毛v一区二区视频| 99超碰在线免费| a片在线免费观看一区| 大香蕉久久伊人网| 国产日韩av片| 九九熱最新視頻| 五月丁香色色综合| 天天做天天爱天天玩夜夜爽 | 最近中文字幕大全免费版在线| 99热这里只有精品55| 五月婷婷六月丁香| 果冻传媒A片一二三区| 99干免费视频| 超碰激情网| 美女天天久久| 久久人妻高清中文| 色吧婷婷| 影音先锋女人AA鲁色资源| 怡红院AV亚洲一区二区三区H| 性色九九| 综合久久9| 五月丁香久人妻中文| 婷婷五月丁香在线观看| 色婷婷五月天激情在线观看| 天天干 夜夜爽| 男男野外做爰全过程69| 丁香青青五月天| 亚洲、欧美、国产另类笫二区| 婷婷五月激情四月综合| 五月花亭亭| 丁香五月成人网| 五月丁香激情综合网| 天堂无码人妻精品AV一区| 百度一下国产精品A| 少妇婷婷五月天| 五月丁香六月婷婷啪啪综合| 丁香五月激情啪啪| 热九九精品| 五月丁香色色网| 天天婬色综合| 色婷婷五月天偷拍| 国产亚洲99久久精品熟女| 六月丁香大香蕉| 五月天成人伊人| 六月婷婷中文字幕| 国产在这里只有精品| 国产精品天天狠天天看| 欧美色宗和激情| 天天情天天狠天天透| 另类图片婷婷五月天| 丁香婷婷六月天| 国产午夜精品一区二区三区四区| 亞洲自怕| 99成人精品六| 高清视频一区| 免费成人中文字幕| 狠狠干狠狠干狠狠干狠狠干| 国产精品大香蕉| 狠狠色综合图片| 91久操| www.99成人视频| 日本五月婷婷| 激情亚洲婷婷| 五月天婷婷影院影院观看| 操一区| 欧美日韩成人一区二区| 五月天综合影院| 狠狠色丁香| 综合性爱网| 严洲天天插| 亚洲AV综合在线观看| 国产在线网址1| 99视频内射三四| 五月丁香综合在线| 婷婷丁香五月社区亚洲| 色综合色欲综合天天免费 | 五月婷婷婷婷婷| 日本婷婷| 久久九九网| 色婷婷五月天激情在线观看| www.99精品日操伊人乱碰在线| 伊人网啪啪| 亚洲狠狠操| 色婷婷成人| 日韩日比视频| 能看的av网站| www:99热视频| 婷婷伊人五月天| 色婷婷丁香花五月天| 、激情六月天| 99热超碰在线| 91婷婷丁香五月天免费视频网站| 天天射美女| 五月丁香婷婷啪啪网| 激情性五月天免费小说视频| 五月婷婷激情中心| 亚洲第一成人无码A片| 蜜臀丁香黄色婷婷五月天| 亚洲欧美另类在线23p| 欧美成人AAA片一区国产精品| 狠狠色综合网| 99亚州综合精品成人网| 日本色久| 日韩啪| 久久九九亚洲| 伊人激情影院| 9精品视频在线| 五月婷婷天天| 操日视频| 久久草大香蕉| 丁香婷婷六月婷婷六月婷婷六月婷婷 | 超碰不卡在线| 五月天色色婷婷| 都市激情亚洲| 婷婷的99视频网站| 五月丁香美女| 国产一区二区三区影院| 日韩综合大黄| 久久久精品99| 欧洲综合视频| 欧美五月丁香在线| 亚洲视频一区| 狠狠插日日干撸| 亚洲a片免费观看| 丁香五月婷婷影院| 色婷久九| 激情综合色| 婷婷六月丁香色| 亚洲欧洲另类图片| 深爱综合网| 色婷婷aV四虎| 色欲婷婷五月天| 五月婷婷性爱| 极品人妻VIDEOSSS人妻| 天天爽日日爽夜夜爽| 色色色五月| 久久精彩视频| 无码九九| 一本婷婷丁香久久| 超碰在线观看9| 91久久久久久久| 五月丁香婷婷在线综合蜜桃| 99久久99综合| 成人va在线播放| 国产视频福利| 人人操AV| av中文网站| 色人久夂| 无码AV免费精品一区二区三区| www.夜夜騎夜夜狠| 69久久99精品久久久久| 五月天婷婷成人网| 五月天婷婷激情综合| www.91.com黄| 亚洲中文字幕在线观看| 五月天天天天天天天天天天天天天天天婷婷婷| 欧美va亚洲va| www.久操| 狠狠色综合网| 五月色丁香婷婷中文字幕| 熟女国产在线一区二区三区四区| 丁香五月色| 午夜九九电影| 丁香激情四射| 婷婷五月丁香第四色超碰在线| 五月丁香六月婷婷操操操| 国产亚洲99久久精品| 在线18av | 色色综合激情| 婷婷久久久久久久| 婷婷综合色网| 色综啪啪网| 九九99精品视频| 亚洲日韩26uuu| 2015在线中文字幕| 国产人妻777人伦精品HD| 激情五月六月婷婷| 婷婷五月天,影院| 成人免费在线电影| 超碰免费在线| www.婷婷六月天| 五月婷婷丁香五月婷婷| 俺也去在线久久精品23欧美综合视频网站,丰满人妻一区二区三区在线视频53,丰满 | www.minyis.com【JT】实力收量可预付QQ2101460746 | 精品人人操| 五月天天丁香婷婷| 五月天桃色深爱网| 婷婷一本和五月丁香| 激情亚洲婷婷| 熟女国产在线一区二区三区四区| 亚洲精品又粗又大又爽A片| 丁香婷婷激情六月五月开心| 婷婷丁香基地在线| 五月丁香综合啪啪啪啪啪| 丁香九色不卡aaa| 激情久久四色| 日韩啪啪视频| 激情啪啪五月| 色婷婷文字幕| 色99xx| 国产高潮A片羞羞视频涩涩| 久久92| 天天色天天爱天天爱天天爱y| 五月婷婷狠天天色综合| 丁香五月天堂网| 涩涩婷婷五月| 中文字幕天天干| 丁香狠狠干| 久久久激情| av在线免费播放| 五月天综合视频网| 婷婷五月亚洲一本在线丁香| 婷婷九月激情| 六月婷婷视频| 天天草天天爱| 欧美久久五月婷婷| 天天做天天爱天天爽在| 婷婷丁香五月激情综合站_久久五月丁香激情综合_开心五月综合激情综合五月_婷 | 亚洲色久| 97在线视频观看| 26uuu精品一区二区| 99国产欧美视频| 超碰cap| 无码成人播放器| 丁香五月av| 中文字幕av在线| 精品99视频| 99热这里只有精| 开心激情五月天网| 狠狠干,狠狠操| www.minyis.com【JT】实力收量可预付QQ2101460746 | 欧美色色色色色| 日韩啪啪视频| 五月丁香激情综合| 99精品在线观看| 国产精品18久久久| 国产一级片色色| 五月丁香啪| 婷婷五月花| 国自产拍偷拍精品啪啪一区二区| 99年操人人爽| 精品国婬伦V无码久久久| 婷婷干| 91精品刘玥| 婷婷六月五月天综合| 久久这里只有国产视频| 99热这| 热99re| 国产精品香蕉| 毛片新网地| 九九香蕉网| 五月婷婷在线免费观看| 国自产拍偷拍精品啪啪一区二区| 欧美综合激情| 9久久久| 爽极品色| 91婷婷五月天综合视频| 激情五月婷婷网| 99色色色色| 九九热这里只有精品6| 成人在线综合| 伊人五月天| αv中文字幕在线观| 99碰碰碰| www.久久久.com| 18av天堂| 激情丁香五月婷婷啪啪| 五月伊人婷婷| 婷香五月| 色播jjjj| 中文字幕永久免费| 丁香五月在线视频黑人| www.99热| 亚洲精品无码一区二区| 99丝袜精品视频网站| 丁香婷婷色九月| 天天日日人| 婷婷九月丁香久久| 五月婷婷99热| 婷婷激情五月呦呦| 美女激情综合| 天天操夜夜肏| 色欲婷婷五月天| 五月天偷拍| 婷婷五月综合基地| 五月天激情综合在线| 不卡影院午夜理论片| 丁香婷婷色九月| 人妻内射一区二区在线视频| 九九99男女视频在线观看| 永久的网站AAAA| 久久这里只| 九九综合精品| 激情又色又爽又黄的A片| 婷婷久久女人| 综合激情网| 日本高清久| 五月天久久www| 丁香五月综合激情性爱| 91人在线观看| 99久久丝| 99综合自拍| 99爱在线免费视频| aaa9区免费在线观看| 丁香婷婷免费| 丁香五月婷婷啪啪啪| 99九九这里有免费视频| 激情五月图| 狠狠穞A片一區二區三區| 免费看欧美成人A片无码| 成人在线综合| 五月天综合视频| EEUSS鲁片一区二区三区| 99热销国产这里有精品| 日韩狠狠色婷婷| www.色9| 一本到不卡高清DVD| 日本a片网址| 色色色综合| 亚州男人天堂婷婷五月| 国内裸舞二区| 99操99| 中文字幕第四色.999| 99视频精品8 | 91婷婷色| 99碰碰中文| 天天射影视综合网| 午夜不卡久久精品无码免费| 亚洲综合激情五月久久| 色吧五月| 99re这里只有精品99| 91婷婷在线| 无码人妻电影| 国产亚洲99久久精品| 日熟女| 可以免费观看的av| a在线免费v| 色色亚洲五月天| 免费视频WWW在线观看网站| 婷婷丁香射射| 丁香五月六月综合激情| 亚洲色综合| 丁香五月婷婷色情综合| 婷婷七月丁香色色| 色婷婷色五月天| 日本美女97在线视频| www.色窝| 久久性视频| www.激情五月天。com| 色综合九九| 亚洲另类婷婷综合| 国产免费一区二区在线A片视频| 欧美在线看| 狼友视频在线观看18| 丁香五月婷婷Av| 午夜爱爱网站| 久久婷婷成人综合色怡春院| 久操大香蕉| 婷婷五月激情的图片| 97碰碰在线观看视频| 九九色综合视频| 熟女国产在线一区二区三区四区| 激情综合激情综合| 久久婷婷色综合| 超碰AV在线| 欧美极品999| 日日夜夜狠狠| 五月天伊人日日噜影片AV| 久久艹 五月天| 亚洲婷婷成人五月天| 大香焦A∨| 99re热视频| www.久99| 九九九九综合| 欧美黑人巨大猛烈cuckold| 丁香五月色情av| 婷婷五月天AV在线| 五月亚洲激情| 久久一操| 天天干天天拍| 婷婷日日夜夜| 婷婷啪啪| 九九色video| 97干97色| 综合图区激情| 丁香五月中文字幕| 韩国中文字幕91| 国产性爱一级| 内射激情在线| 91婷婷色| 婷婷在线中文字幕| 久久久久久激情| 99在线看片| 久久婷五月综合| 极品人妻VIDEOSSS人妻| 在线观看免费狠狠色丁香香综合| 狠狠操天天操天天操| 五月丁香久久婷| 成人片在线播放| 国产婷婷五月在线视频| 五月天五月色婷婷综合| 久久精品五月| 国产精品a无线| 天天综合久久| 爱婷婷五月| 99久久九九| 九九久久久综合| 99只有精品| www夜夜| 狠狠操天天操综合| 99啪| 99在线一区| 成人片黄网站色大片免费毛片| 天天干天天干天天干| oVV4WIB3vFi8D| AV五月丁香| Caoub青青超碰 | 三级黄网站| 9久热视频| 五月综合久久| 99在线热| 丁香激情网| 精品51XX| 99热在线中文字幕| 婷婷五月丁香五月| 欧美日韩成人一区二区| 免费观看日韩成人av| 偷偷与邻居做爰完整视频| 久久久久亚洲AV成人无码电影| 26uuuuuuuu国产| 婷婷五月丁香综合激情小说| 伊人干综合| 亚洲无码黄色| 婷婷伊人綜合中文| 丁香六月婷婷基地| 中文字幕日产A片在线看| 淫视馆aV二区一区| 久久精品9| 日日干日日| 久久久性爱视频| 这里只有精彩视| 九九视频精品在线免费| 六月丁香五月婷婷首页| 操碰97| 99操中文视频| 久久资源网五月婷| 99热碰碰热| 91人人澡人人爽人人看| av第一二区| 丁香六月婷婷社区| HD久久精品视频| 99超级超级超级碰| 99九无网码| 超碰人人操| 97在线干| www.久久久久久久久久久| 在线超碰免费| 91人妻人人操| 夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂亚洲亚洲亚洲亚洲亚洲亚洲亚洲亚洲色 | 97久久人人操| 67194成I人在线观看线路1| 人妻久久婷婷| 青青草tp| 欧美日综合| 成人丁香五月| 99精品热视频只有精品10| 婷婷六月色| 亚洲色色色色色| 丁香六月婷婷综合激情欧美| 五月天婷五月天综合网小说首页-五月天激激婷婷大综合,婷婷亚洲综合五月天小说 | 婷婷最新地址| 99操不停| 国精产品一区二区三区| 五月天婷综合| 亚洲综合99| 色五月婷婷婷婷婷婷婷婷婷婷| 青青热视频| 色婷婷色五月另类综合| 婷婷五月天亚洲色| 五月丁香另类网| 五月丁香婷婷激情视频| 深爱五月婷婷| 九九热10| 久久久人妻| 欧美三级巜人妻互换| 天天色中文字幕女优AV| 色站9/| XX久久| 婷婷久久综合| 夜夜噜夜夜奇| 丁香成人视频| 色色免费网站| 激情五月天丁香| 超碰日韩成人| 丁香婷婷五月人体| 久久婷婷视频| 婷婷五月天激情视频| 婷婷五月天电影区小说区| 色婷婷综合影院| 色99网| 超碰只有精品在线| 婷婷丁香综合| 思思色播| 夜夜爽天操| 婷婷色啪| 成人做爰A片免费看视频| 五月成人丁香av91| 中文字幕97超级碰| 久久激情综合| 欧美人妻一区二区| 337p大胆噜噜噜噜噜91Av| 中文字幕丰满孑伦无码专区| 99视频啪啪| 五月丁香精品| 狠狠狠狠狠草| 天天摸天天肏| 婷婷狠狠综合网入口| www.婷婷.com| 人妻videos人妻高清| 26uuu在线观看| 日韩啪啪网| 五月天堂六月丁香亚州中文字幕久久 | 综合色色综合| 狠狠人人| 欧美啪啪9| 99国产精品白浆在线观看免费| 久七香蕉| 午夜青草资源| 任你日视频| 激情98色婷婷五| 伊人久久婷| 五月婷婷欧美激情| 人人摸人人搞| 9精品一区| 欧洲婷婷五月天| 五月天激情网图片| 四川女人毛多水多A片| 色婷婷狠狠久久YY| 久热a| 99免费热视频在线| av在线不卡播放| 天天色综合色| 色婷五月| 99热精品超碰| 激情综合婷婷| 日本va欧美va国产激情| 国产小网站| 99热只有精品在线观看| 97色碰| 視频福利乱色| 思思w99| 九九热九九| 亚欧州精品视频| 99热这里只有免费精品| 99网| 九九热在线观看6| 国产毛片精品一区二区色欲黄A片| 免费无码毛片一区二区A片| 五月婷婷三级| 婷婷五月天影视首页| 婷婷丁香18| 激情综合网之激情五月| 久久综合中文| 日本九九视频| 婷婷深爱五月| 欧美日韩色色| 婷婷成人综合五月| 九九香蕉网| 久操大香蕉| 操九色| 大香久久伊人网| 精品,99| 无码视频国内精品久久久| 色之综合网| 99亚州综合精品成人网| 99黄色在线视频精品熟女| 熟女激情五月天 | 亚洲色综久久五月| A片试看120分钟做受视频红杏| 国产韩日亚洲美州欧亚综合在线| 五月天丁香婷| 狼人婷婷综合| 99热精品99| 99九九热视频| 殴美日韩成人| 五月丁香综合中文| 操一操干一干| 99玖玖人人| 51国精产品自偷自偷综合| 日本A片一区| 人人人人人人人草| 99爱在线| 色婷婷狠狠干芒果TV| www99精品日韩| www.色擼擼.com| 丁香五月玖玖| 五月天综合激情网| 午夜九九九九九九| 五月婷婷天天| 91精品又长又大又粗又爽又猛| 婷婷在线播放| 五月综合丁香婷婷| 久久伊人五月天| 婷婷成人网五月天| 99热精品在线观看| 五月婷婷开心色伊人| 国产肥白大熟妇BBBB视频| 五月的丁香六月的婷婷| 成人做爰黄A片免费看直播室男男| 精品无码人妻一区| 丁香五月狠狠在线观看| 久热网站| 伊人婷婷五月天av| 日本啪啪天堂| 激情五婷精品网在线观看网址| 亚洲日韩一页精品发布| 丁香激情六月天婷婷| A片天天| 国产成人亚洲综合A∨婷婷| 日本乱论99| 国产日比| 日本在线免费中文com.| 91午夜婷婷狠狠久久综合9色| 99热这里只有精品搜| 伊人综合婷婷| 婷婷丁香在线| 天天色天天爱天天舔| 伊人喵咪a V| 丁香六月婷婷综合缴| 日韩欧美成人片| 激情综合一| 精品99爱免费视频在线观看| 免费播放AV| 五月色婷婷影院| 激情综合5月| 超碰99热精品在线| 色综合五月| 久久最新色色色| 婷婷五月丁香激情| 日韩另类在线观看| site:minyis.com| 色色999三级片| 五月天婷婷爱| 九九免费视频在线| 欧美日本99| 婷婷五月花| 99热综合在线观看| 日韩色色一区| 激情久久久| 五月婷婷真爱激情网| 久久激情五月| 九色亚洲| 亚洲综合在线视频| 五月天色婷婷基地| 亚洲99综合| 91丨九色丨国产| 欧美99热| 婷婷精品性性性性性性性| 99ri国产在线| 潘金莲AAAAAAAAAA| 日本人妻A片成人免费看片| 五月天五月色| 亚洲天堂爱爱| 琪琪色网址| 色色色成人网| 可以看的AV网站| 五月花综合网| 综合激情sV| 青草视频在线观看视频| 操97免费超级视频| 99精品7| 欧美日韩99| 97婷婷丁香五月综合| 97碰在线视频| 婷婷丁香五月激情密臀av| 久久五月丁香综合17C| 97在线刺激| 欧美一级a| 激情五月婷婷| 丁香婷婷色情| 日韩操逼小电影| 丁香五月六月久久综合| 伊人九九综合| 久cao香蕉影院| 九九热在线观看视频| 色噜噜五月天| 五月天色婷婷图片| 日本va欧美va欧美va精品| 日韩五月婷婷| 婷婷五月在线影院| 婷婷五月影院| 久久婷婷五月综合色奶水99啪| 亚洲 六月 综合| 99精品这里只有免费视频 | 亚洲一级 片内射网站在线观看| 久热免费| 美女激情综合| 丁香五月天激情视频| www.五月婷婷久久.com| 五月丁香六月色婷| www99久久| 五月天激情综合网| 婷婷久久色五月婷婷久久久| 亚洲综合色网| 天天骑天天操| 操久久网| 婷婷综合一二三| 久久婷婷六月综合| 色性日本| 森林影视大全,最好看的2019年视频| 色色色色色热| 狠狠人妻色综合| 日本精品九九九| 99啪视频在线观看| 婷婷五月天成人视频| 伊人久久大香线蕉精品| 中字幕视频在线永久在线观看免费| 亚洲日日操| 97碰| 99精品在线观看视频| 婷婷性福五月天| AV人人操| 人人射人人高潮| 婷婷五月天电影区小说区| 热99精品视频| 可以免费看的av网站| 激情综合婷婷| 婷婷永久在线| 久久午夜理论| 97色色色色色色色色色色色色色| 婷婷黄色五月天在线视频| 九九热视频网站| 久久亚洲网| 久久黄色网扯| 五月激情另类| 国产一区男女| 五月丁香六月婷婷婷婷| 六月婷婷国产| 情婷婷五月天| 看久久性爱99视频| 五月丁香婷婷免费视频| 天天干一干| 亚洲熟女色| 久久九九综合| 香蕉婷婷| 精品香蕉99久久久久网站| 99久久户外勾搭| 精品99*| 99视频极品在线香蕉| 久草丁香婷婷五月天婷| 天堂爱啪啪| 久9视频| 婷婷五月69| 99re热| 九九婷婷五月天影视| 五月丁香婷婷婷婷综合网| 婷婷丁香五月,狠狠综合| 骚货艹网站视频| 亚洲色五月婷婷| 久久92| 99热精品免费| 免费看欧美成人A片无码| 丁香五月婷婷欧美性爱| 天天婬色综合| 99人人操人人爱久久久| 久久99精品九九久久久婷婷| 国产精品久久99| 丁香五月激情综合网激情五月| 亚洲人人操BD| www婷婷| 九九AV| 碰97 久| 久久182| 亚洲操逼网| 91热er| 色狠狠色噜噜AV天堂五区消防| 久久最新色| 欧美在线干| 亚洲欧美综合7777色亭亭| 久久精品99久久久久久久久| 8区视频在线| 久久五月婷综合网| 狠狠干在线| 色五月丁香婷婷| 亚洲激情四射色| 欧美日韩国产一区二区| 轮奸综合网| 五月激情网综合| 影音先锋一区| 婷婷五月天丁香| 亚洲国产网站| 俺也去在线久久精品23欧美综合视频网站,丰满人妻一区二区三区在线视频53,丰满 | 色色色99| 五月丁香六月婷婷综合网站| 丁香狠狠色婷婷| 99热在线观看| 亚洲成人av在线观看| 自拍偷窥99热| 思思热久久婷婷五月天| 色色色地址| 日韩一区二区A片免费观看| 综合色色综合| 青草久久五月婷伊人| 五月丁香激情综合网| 激情av| av五月丁香婷婷网| 五月天国产成人| 婷婷色五月丁香六月欧美啪| www.夜夜操| 人妻中文av| 思思热99er在线视频| 色婷婷电影网| 极品人妻VIDEOSSS人妻| 99亚洲精美视频在线观看| 久久久久久久久久久久久久人妻视频| 色色网站免费| 操一区| www.五月天色色色| 99这里只有精品在线观看| 99热亚洲| 骚逼视频一区2区| 99热在线爱| www.婷婷六月天| 9九九久久精品无码专区| 99综合网| 99.N在线视频| 成人精品免费在线观看| 六月色婷婷色| 久久99热这里只频精品6学生| AA片在线观看视频在线播放| 性色婷婷| 五月婷婷婷婷网| 中文字幕日产A片在线看| 欧美六月| 思思热这里只有精品| 丁香五月花影院| 激情美女五月天| 九九这里是免费的视频5| 97碰 在线视频观看| 丁香五月婷婷动漫视频| 任你爽视频| 懂色av蜜臀av粉嫩av永陈冠希| 五月婷六月丁香| 97福利视频| 97色干| 国产激情在线| 久久久久久18| 久久久人妻门| 麻豆AV一区二区三区| 婷婷成人网五月天| 色五月天堂| 九九综舍久久| 天天爽天天摸天天爱| 丁香五月-激情综合| 天天爽天天弄| 日本综合久久| 婷婷丁香色五月亚洲| 婷婷性爱网| 91人人超碰在线| 狠狠操天天干| 久久九九婷婷| 99免费热视频在线| 色色草97| 婷婷开心久久| 一级内射毛片| 热99热9| 9九九久久精品无码专区| 五月天激情婷婷五月天久久| 色婷婷影视| 99热这里只有精品21| 337p大胆噜噜噜噜噜91Av| 丁香婷婷六月激情文学| 青青草激情网| 丁香 婷婷 激情 综合 五月| 99热这里只有精品3| 99色天堂| 91日韩在线| 亚洲性受XXXX五月丁香| 五月天婷婷视频| 综合激情伊人影视在线| 日本丁香五月| 婷婷,五月天,丁香,第一| 色婷婷五月天偷拍| 丁香婷婷六月婷婷六月婷婷六月婷婷| 九九热在线精品| 成人超碰AV| 99热久久这里只有精品| 激情丁香五月激情婷婷| 国产成人综合电影| 色五狠狠| 久久午夜丁香| 激情99| 五月婷婷激情综合| 九九热在线观看视频| 亚洲色色图片| 成人.在线日韩| www,五月天激情| 亚洲不卡123| 类似婷婷激情综合网站| www.色色五月天.com| 91丨九色丨大屁股| 成人超碰AV| 日本美女97在线视频| 亚洲综合热| 婷婷情色五月天| 五月丁香在线| 爱的综合网| 五月色丁香婷婷综合| 婷婷久久综合| 99小视频在线| 无遮挡国产高潮视频免费观看| 五月丁香色狠狠干大屄| 五月色激情综合网| 久99视频在线观看| 可以免费看av网站| 天堂在线伊久| 九九色图| 婷婷五月亚洲激情| 五月激香蕉网| 国产亚洲精品久久一区二区三区| www.五月婷婷久久.com| 婷婷五月综合激情| 婷婷五月天另类网站| 九九十99视频| 亚洲色综合| 狠狠色精品综合| 婷婷婷久久久| 99在线精品观看99| 亚洲五月天婷婷在线| 激情AV在线| 99国产精品久久久久久久久久久| 婷婷五月天欧美图片在线播放电驴| 琪琪色影音先锋| 色五月婷婷在线| 深爱五月日韩| 91精品久久久久| 不卡在线视频| WWW,五月| 亚洲综合干| 99久在线精品99re5热视频| 激情五月天综合网| 色丁香影院| 欧美极品999| 夜色.cnm| 伊人五月综合网| 丁香五月区| 婷婷成人网五月天| 91日综合欧美| 色婷婷六月| 婷婷中文字幕网| 亚洲XX日本|