亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

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

Shell腳本“No such file”報(bào)錯(cuò)排查與數(shù)組傳參實(shí)踐

Shell腳本“No such file”報(bào)錯(cuò)排查與數(shù)組傳參實(shí)踐 連載數(shù)據(jù)庫巡檢腳本的時(shí)候最讓人頭疼的不是 SQL 寫得有問題而是 Shell 腳本本身莫名其妙地給你來一個(gè) “No such file or directory”然后整個(gè)任務(wù)就在那干瞪眼。這個(gè)報(bào)錯(cuò)長(zhǎng)得特別像文件路徑不存在但你去查文件、查目錄全都好好的。最近幫同事排查一個(gè)批量連庫查詢的腳本正好把這個(gè)問題和另一個(gè)高頻坑——函數(shù)傳參數(shù)組——一起撞上了。這篇文章就把這兩個(gè)問題從現(xiàn)象、原理到解決方案完整拆一遍都是踩過坑之后的實(shí)操記錄。先交代一下背景。腳本本身不復(fù)雜就是從一臺(tái)跳板機(jī)循環(huán)連多個(gè)業(yè)務(wù)庫執(zhí)行幾條查詢語句然后把結(jié)果匯總。部署到新服務(wù)器上之后一執(zhí)行就報(bào)No such file or directory沒有任何多余信息。新手遇到這個(gè)報(bào)錯(cuò)第一反應(yīng)是去檢查 SQL 文件、日志目錄、數(shù)據(jù)文件是不是不存在但我可以負(fù)責(zé)任地說在這個(gè)場(chǎng)景里九成以上是腳本文件或執(zhí)行環(huán)境本身出了問題而不是數(shù)據(jù)庫目錄里的文件缺失。下面我按實(shí)際排查順序把“文件不存在”這個(gè)誤報(bào)的幾種根源先拆清楚再單獨(dú)說函數(shù)傳參數(shù)組的問題最后給出一套可以直接抄的完整方案。1. 報(bào)錯(cuò)現(xiàn)場(chǎng)還原先看清“No such file or directory”到底卡在哪里1.1 最容易翻車的第一現(xiàn)場(chǎng)腳本自身的行尾符我第一次在這類報(bào)錯(cuò)上栽跟頭是在 Windows 上寫完腳本、通過 Git 傳到 Linux 服務(wù)器后執(zhí)行的。寫的時(shí)候用的是記事本風(fēng)格的編輯器行尾符默認(rèn)是 CRLF\r\n而 Linux 只認(rèn) LF\n。執(zhí)行./check_db.sh的時(shí)候內(nèi)核讀取腳本第一行#!/bin/bash卻發(fā)現(xiàn)實(shí)際解析出來的是#!/bin/bash\r。它去系統(tǒng)中找/bin/bash\r這個(gè)“解釋器文件”當(dāng)然找不到于是報(bào)錯(cuò)-bash: ./check_db.sh: /bin/bash^M: bad interpreter: No such file or directory注意這里報(bào)錯(cuò)信息里的^M那就是\r回車符的可視化表示。你盯著腳本內(nèi)容看覺得完全正??蓛?nèi)核眼里解釋器路徑就是帶著一個(gè)看不見的尾巴。這個(gè)問題在連接數(shù)據(jù)庫腳本里尤其陰險(xiǎn)因?yàn)槟_本本身可能已經(jīng)被 dos2unix 處理過但后來編輯的過程中又引入了新的 CRLF導(dǎo)致反復(fù)發(fā)作。判斷最直接的方法是file命令file check_db.sh如果輸出里包含with CRLF line terminators那就實(shí)錘了。修復(fù)也很簡(jiǎn)單dos2unix check_db.sh # 或者用 sed不依賴額外工具 sed -i s/\r$// check_db.sh處理完再執(zhí)行一次file確認(rèn)輸出變成Bourne-Again shell script, ASCII text executable就沒有行尾符問題了。1.2 第二現(xiàn)場(chǎng)解釋器路徑與執(zhí)行方式的隱性坑排除掉 CRLF 之后下一個(gè)要看的點(diǎn)是腳本的解釋器聲明和執(zhí)行方式。很多人習(xí)慣寫#!/usr/bin/env bash這本身沒問題但它在某些受限環(huán)境里會(huì)失效。env需要從 PATH 環(huán)境變量里去定位 bash如果 PATH 里沒有 bash 所在目錄同樣會(huì)報(bào)No such file or directory而且報(bào)錯(cuò)信息里可能不帶^M讓定位更難。我自己在 crontab 里跑腳本時(shí)遇到過好幾次這種問題。cron 環(huán)境的最小 PATH 通常只有/usr/bin:/bin如果 bash 裝在其他位置腳本就無法啟動(dòng)。解決辦法是腳本開頭直接寫死解釋器絕對(duì)路徑比如#!/bin/bash而不是#!/usr/bin/env bash。雖然犧牲了一點(diǎn)可移植性但換來了確定性和穩(wěn)定。另外還有一個(gè)容易被忽略的腳本文件編碼如果帶了 BOMByte Order Mark第一行的#!前面會(huì)多出三個(gè)不可見字節(jié)同樣會(huì)讓內(nèi)核找不到解釋器??梢杂胹ed -i 1s/^\xEF\xBB\xBF// check_db.sh把 BOM 去掉。提示排查執(zhí)行類報(bào)錯(cuò)強(qiáng)烈建議先用bash -x ./check_db.sh強(qiáng)制跑一遍。這樣能跳過執(zhí)行權(quán)限和 shebang 解析的干擾直接暴露腳本內(nèi)部邏輯錯(cuò)誤是區(qū)分“腳本本身問題”和“環(huán)境問題”最快的手段。1.3 第三現(xiàn)場(chǎng)腳本內(nèi)部調(diào)用的命令或文件缺失當(dāng)腳本能正常啟動(dòng)、卻仍然報(bào)No such file or directory時(shí)問題就轉(zhuǎn)移到腳本內(nèi)部了。在數(shù)據(jù)庫查詢場(chǎng)景里最常見的三類內(nèi)部命令問題第一mysql、mysqldump等命令不在 PATH 中。交互式終端里你敲mysql -u... -p... -e select 1能跑通是因?yàn)橛脩舻?bash_profile或.bashrc里加了 MySQL 的 bin 目錄。但腳本執(zhí)行時(shí)不一定繼承這個(gè)環(huán)境尤其是通過 cron、systemd timer、CI 任務(wù)來調(diào)度的時(shí)候。這時(shí)候 shell 會(huì)報(bào)mysql: command not found注意這個(gè)報(bào)錯(cuò)通常不是No such file or directory但人慌起來容易把兩者混為一談。第二重定向目標(biāo)目錄不存在。比如腳本里寫mysqldump ... /backup/$(date %F).sql而/backup目錄根本沒建shell 會(huì)報(bào)-bash: /backup/db_2025-01-01.sql: No such file or directory很多人誤以為 MySQL 沒起來實(shí)際就是目錄沒創(chuàng)建。第三讀取外部 SQL 文件時(shí)文件不存在比如mysql -uapp -p*** app_db /opt/sql/init.sql文件缺失時(shí)同樣報(bào)錯(cuò)。這個(gè)不用展開提醒一句就夠重定向前先mkdir -p并檢查源文件是否存在。用一套固定的定位流程能省很多時(shí)間# 1. 檢查腳本格式 file check_db.sh # 2. 語法與跟蹤 bash -n check_db.sh bash -x check_db.sh # 3. 查數(shù)據(jù)庫命令位置 which mysql echo $PATH2. 數(shù)據(jù)庫連接場(chǎng)景下“文件不存在”的隱藏根源2.1 socket 文件與連接配置的坑均勻排查完腳本自身真正的“數(shù)據(jù)庫相關(guān)文件不存在”才會(huì)浮出水面。其中第一個(gè)經(jīng)典坑是 MySQL 的 socket 文件??蛻舳诉Blocalhost時(shí)默認(rèn)不走 TCP 網(wǎng)絡(luò)而是去讀 Unix socket 文件路徑通常約定為/tmp/mysql.sock或/var/run/mysqld/mysqld.sock。如果服務(wù)端的 socket 路徑和客戶端默認(rèn)路徑不一致或者客戶端通過--socket/custom/path/mysql.sock顯式指定了錯(cuò)誤路徑報(bào)錯(cuò)往往長(zhǎng)這樣ERROR 2002 (HY000): Cant connect to local MySQL server through socket /tmp/mysql.sock (2)這個(gè)(2)就是系統(tǒng)錯(cuò)誤碼 ENOENT對(duì)應(yīng)“No such file or directory”。很多人的第一反應(yīng)是 MySQL 服務(wù)沒啟動(dòng)systemctl status mysql查半天服務(wù)明明正常。真正的解法是確認(rèn) socket 文件的真實(shí)位置可以用find / -name *.sock 2/dev/null搜索或者在 MySQL 配置里查socket參數(shù)。腳本里推薦顯式指定 socket 路徑或者干脆用 TCP 方式連接-h 127.0.0.1繞開 socket 文件這個(gè)不確定性。如果只是為了跑查詢我個(gè)人的習(xí)慣是在腳本里加mysql --socket/tmp/mysql.sock -h localhost ...如果-h寫了127.0.0.1那么客戶端會(huì)強(qiáng)制走 TCP就不會(huì)有 socket 文件相關(guān)的報(bào)錯(cuò)。兩者選其一即可不要混著寫。2.2 SQL 文件導(dǎo)入導(dǎo)出時(shí)的路徑歧義前面提過重定向路徑但這里值得再展開一點(diǎn)因?yàn)閿?shù)據(jù)庫腳本里太常見了。比如說做每日備份BACKUP_DIR/data/backup mkdir -p $BACKUP_DIR mysqldump --single-transaction -uapp -p*** app_db $BACKUP_DIR/app_db_$(date %F).sql三步少一步都不行。有些腳本寫得很隨意沒建目錄直接重定向。目錄不存在時(shí) shell 在打開目標(biāo)文件之前就失敗了。反過來導(dǎo)入場(chǎng)景也一樣mysql -uapp -p*** app_db /tmp/import.sql/tmp/import.sql如果不存在想都不用想又是“No such file or directory”。這種問題定位很快但容易讓人誤入歧途跑去看數(shù)據(jù)庫權(quán)限。我建議腳本里統(tǒng)一使用變量保存路徑然后在執(zhí)行前做一次文件判斷SQL_FILE/opt/sql/init.sql if [[ ! -f $SQL_FILE ]]; then echo SQL file not found: $SQL_FILE 2 exit 1 fi mysql -uapp -p*** app_db $SQL_FILE這樣至少報(bào)錯(cuò)信息是自己寫的可讀性比 shell 原生的報(bào)錯(cuò)好太多。2.3 環(huán)境變量丟失與 cron 調(diào)度場(chǎng)景數(shù)據(jù)庫命令在交互式終端里能跑、在腳本里死活找不到這個(gè)“非交互環(huán)境”的坑在 crontab 里幾乎是必踩。cron 執(zhí)行腳本時(shí)環(huán)境變量基本是空的PATH只有系統(tǒng)默認(rèn)值。如果你的 MySQL 裝在/usr/local/mysql/bin那么 cron 里的腳本執(zhí)行mysql時(shí)就是找不到命令。最穩(wěn)妥的做法不是在 crontab 里寫一堆PATH而是在腳本開頭顯式設(shè)置export PATH/usr/local/mysql/bin:/usr/local/bin:/usr/bin:/bin同時(shí)有些腳本會(huì)依賴~/.my.cnf來存儲(chǔ)數(shù)據(jù)庫賬號(hào)密碼。cron 執(zhí)行時(shí)HOME不一定是你登錄用戶的 home 目錄密碼文件讀不到連接數(shù)據(jù)庫時(shí)就會(huì)跳出來交互式密碼提示然后腳本卡死。這個(gè)問題表面上是密碼錯(cuò)誤實(shí)際是環(huán)境變量和文件路徑問題和No such file同源。3. Shell函數(shù)傳參數(shù)組到底怎么傳才穩(wěn)3.1 數(shù)組直接傳函數(shù)的翻車現(xiàn)場(chǎng)數(shù)據(jù)庫腳本第一步搞定之后第二個(gè)高頻坑又在“函數(shù)封裝”上等著你。寫過一段時(shí)間 Shell 后你會(huì)發(fā)現(xiàn)查庫邏輯一旦變成“對(duì)一組庫批量執(zhí)行同樣的操作”自然就會(huì)想寫一個(gè)函數(shù)然后把數(shù)據(jù)庫名列表作為參數(shù)傳進(jìn)去。而數(shù)組傳參的坑基本是每個(gè)腳本人都會(huì)踩一遍的。先看典型的錯(cuò)誤寫法#!/bin/bash DB_LIST(order_db user_db log_db) check_db() { echo 第一個(gè)參數(shù): $1 echo 第二個(gè)參數(shù): $2 } check_db ${DB_LIST[]}這樣調(diào)用$1拿到order_db$2拿到user_db看起來好像沒問題。但函數(shù)內(nèi)部根本不知道數(shù)組一共有多少個(gè)元素如果數(shù)組是動(dòng)態(tài)生成的長(zhǎng)度不確定你要在函數(shù)里拿完整列表就得用$把所有位置參數(shù)重新收集一遍。這種做法有個(gè)嚴(yán)重的隱含風(fēng)險(xiǎn)一旦函數(shù)還需要接收其他業(yè)務(wù)參數(shù)數(shù)組元素和普通參數(shù)混在一起就再也分不清了。還有一種更隱蔽的翻車是用${DB_LIST}傳check_db ${DB_LIST}在 Bash 里${arr}等價(jià)于${arr[0]}只取第一個(gè)元素。如果數(shù)組有 100 個(gè)庫名函數(shù)里永遠(yuǎn)只看到第一個(gè)其余 99 個(gè)靜默丟失。這種錯(cuò)誤不會(huì)報(bào)任何錯(cuò)排查起來比報(bào)錯(cuò)坑得多因?yàn)檫壿嬌峡粗耆侠怼?.2 方案一展開傳參函數(shù)內(nèi)重建數(shù)組最直觀的兼容方案是調(diào)用時(shí)讓數(shù)組展開成獨(dú)立的多個(gè)參數(shù)函數(shù)內(nèi)部再重新收集成數(shù)組check_dbs() { local dbs($) for db in ${dbs[]}; do echo checking $db done } DB_LIST(order_db user_db log_db) check_dbs ${DB_LIST[]}關(guān)鍵點(diǎn)是雙引號(hào)不能丟。${DB_LIST[]}會(huì)保留每個(gè)元素中的空格而${DB_LIST[]}不帶引號(hào)則會(huì)被 shell 分詞一個(gè)元素可能被拆成兩個(gè)。函數(shù)內(nèi)部$同樣要加引號(hào)然后再賦值給數(shù)組。這個(gè)方案 Bash 3.x 也能用兼容性最好缺點(diǎn)是數(shù)組很大時(shí)參數(shù)列表會(huì)膨脹同函數(shù)里的其他普通參數(shù)也容易搞混。如果函數(shù)里還有其他普通參數(shù)我的建議是先傳普通參數(shù)再傳數(shù)組展開函數(shù)內(nèi)部用shift把普通參數(shù)消費(fèi)掉剩下的全部收進(jìn)數(shù)組check_dbs() { local mode$1 shift local dbs($) echo mode$mode, db count${#dbs[]} }3.3 方案二推薦傳數(shù)組名加 nameref 引用比展開傳參更優(yōu)雅的方式是直接傳數(shù)組的名字然后在函數(shù)內(nèi)建一個(gè)引用。Bash 4.3 引入了nameref用declare -n或者函數(shù)內(nèi)local -n聲明check_dbs() { local -n db_ref$1 for db in ${db_ref[]}; do echo checking $db done } DB_LIST(order_db user_db log_db) check_dbs DB_LIST調(diào)用方傳的是變量名字符串DB_LIST函數(shù)內(nèi)部local -n db_ref$1建立了一個(gè)引用之后訪問db_ref就等于訪問外部的DB_LIST。名字傳進(jìn)來數(shù)據(jù)不復(fù)制函數(shù)內(nèi)可以直接用${#db_ref[]}獲取長(zhǎng)度、按下標(biāo)訪問、甚至給數(shù)組追加元素。用這個(gè)方案有三個(gè)注意事項(xiàng)第一函數(shù)內(nèi)的引用變量名不能和傳入的數(shù)組名相同。如果外部數(shù)組叫db_ref函數(shù)內(nèi)部又用local -n db_ref$1Bash 會(huì)報(bào)circular name reference。建議函數(shù)內(nèi)部統(tǒng)一用_ref、_arr這類不太會(huì)和業(yè)務(wù)變量沖突的名字。第二nameref 是引用不是拷貝。函數(shù)內(nèi)給db_ref重新賦值會(huì)直接修改外部數(shù)組。如果只想讀取不要對(duì)引用變量做賦值操作如果想做副本可以在函數(shù)內(nèi)先復(fù)制一份local -a tmp_arr(${db_ref[]})第三需要確認(rèn)運(yùn)行環(huán)境 Bash 版本不低于 4.3。macOS 自帶的老版本 Bash 3.2 不支持declare -n這個(gè)改動(dòng)沒法用。生產(chǎn)環(huán)境建議統(tǒng)一維護(hù)一份較新的 bash或者用下面的兼容方案。3.4 方案三老版本 Bash 的兼容打法如果很倒霉線上環(huán)境是 Bash 3.x不能上nameref。退而求其次有兩種辦法。方法一是走全局變量數(shù)組定義在函數(shù)外函數(shù)內(nèi)直接引用配合注釋約定好職責(zé)。這個(gè)最簡(jiǎn)單但封裝性差函數(shù)不通用換個(gè)數(shù)組名就得改函數(shù)沒法做成公共函數(shù)庫。方法二是用eval做間接展開。思路是先拿到數(shù)組名再?gòu)臄?shù)組名反推出數(shù)組內(nèi)容check_dbs() { local arr_name$1 eval local dbs(\\${$arr_name[]}\) for db in ${dbs[]}; do echo checking $db done }這一行的含義是先在外面構(gòu)造一個(gè)字符串local dbs(${DB_LIST[]})然后讓eval在當(dāng)前位置執(zhí)行它等于把目標(biāo)數(shù)組復(fù)制成了函數(shù)內(nèi)的dbs。好處是函數(shù)內(nèi)后續(xù)操作都正常了壞處是eval對(duì)傳入的$1完全不設(shè)防。如果數(shù)組名來自外部輸入里面塞了一段惡意命令就會(huì)直接被 eval 執(zhí)行。所以這個(gè)方案只適合自己內(nèi)部明確可控的場(chǎng)景絕不建議對(duì)不可信的參數(shù)使用。3.5 三種方案怎么選做了張表方便生產(chǎn)環(huán)境直接對(duì)照方案Bash 版本要求數(shù)據(jù)復(fù)制主要風(fēng)險(xiǎn)推薦場(chǎng)景展開傳參 $重建3.x是普通參數(shù)和數(shù)組元素易混淆數(shù)組較小一次性腳本nameref 傳數(shù)組名4.3否circular name reference生產(chǎn)環(huán)境首選eval 間接展開3.x是命令注入風(fēng)險(xiǎn)老版本緊急兼容另外一個(gè)更省事的辦法如果你的數(shù)組只是循環(huán)遍歷其實(shí)不一定要傳進(jìn)函數(shù)。把for循環(huán)留在外層函數(shù)只接收單個(gè)元素比如check_db $db這就完全繞開數(shù)組傳參問題。很多場(chǎng)景下這種“函數(shù)處理單值 外層循環(huán)”的結(jié)構(gòu)比傳數(shù)組更清晰也更符合 KISS 原則。4. 實(shí)戰(zhàn)案例批量數(shù)據(jù)庫巡檢腳本的完整排查修復(fù)4.1 一個(gè)同時(shí)踩中兩個(gè)坑的典型腳本下面這個(gè)腳本組合了前文所有坑的精華你可以先體會(huì)一下#!/bin/bash HOST_LIST(10.0.0.1 10.0.0.2 10.0.0.3) check_cluster() { local first$1 echo 第一個(gè)主機(jī): $first mysql -h $first -uapp -psecret -e SELECT 1 21 } check_cluster ${HOST_LIST[]}這個(gè)腳本在部署過程中暴露了三個(gè)層級(jí)的錯(cuò)誤CRLF 引發(fā)的解釋器找不到、mysql 命令不在 PATH 里、數(shù)組傳參后函數(shù)里只拿到了第一個(gè)主機(jī)。前兩個(gè)報(bào)錯(cuò)是“No such file or directory”系的第三個(gè)是靜默邏輯錯(cuò)誤。4.2 從報(bào)錯(cuò)到修復(fù)的逐級(jí)排查先遇到的是第一個(gè)報(bào)錯(cuò)/bin/bash^M: bad interpreter。執(zhí)行file check_db.sh看到with CRLF line terminators用sed -i s/\r$// check_db.sh處理掉。再次執(zhí)行報(bào)錯(cuò)變成了mysql: command not found這說明腳本本身已經(jīng)能跑了但mysql命令沒被找到。which mysql沒有任何輸出說明 PATH 里不包含 MySQL bin 目錄。檢查發(fā)現(xiàn) MySQL 是編譯安裝在/usr/local/mysql下的交互式終端里能跑是因?yàn)?bash_profile里 export 了 PATH腳本運(yùn)行環(huán)境卻沒有。修復(fù)方式是在腳本開頭export PATH/usr/local/mysql/bin:$PATH第三個(gè)問題就是在功能驗(yàn)證時(shí)發(fā)現(xiàn)的。腳本執(zhí)行后循環(huán)并沒有報(bào)錯(cuò)但輸出里始終只顯示10.0.0.1。檢查了函數(shù)調(diào)用方式發(fā)現(xiàn)${HOST_LIST[]}展開后傳給函數(shù)按位置參數(shù)看$1就是第一個(gè)元素函數(shù)里只用了$1后面的主機(jī)全部被忽略。這里改成 nameref傳入數(shù)組名而不是展開內(nèi)容。4.3 修復(fù)后的完整可運(yùn)行版本修復(fù)之后的腳本長(zhǎng)這樣#!/bin/bash # 功能批量巡檢數(shù)據(jù)庫主機(jī)連通性 # 用法bash check_cluster.sh export PATH/usr/local/mysql/bin:/usr/local/bin:/usr/bin:/bin HOST_LIST(10.0.0.1 10.0.0.2 10.0.0.3) DB_USERapp_user DB_PASSapp_pass check_cluster() { local -n host_ref$1 local connect_timeout5 for host in ${host_ref[]}; do echo checking $host mysql --connect-timeout$connect_timeout \ -h $host \ -u$DB_USER -p$DB_PASS \ -e SELECT ok AS status; 21 \ || echo FAILED: $host done } main() { check_cluster HOST_LIST } main $這個(gè)版本有幾個(gè)細(xì)節(jié)值得說。第一數(shù)組按名字傳入用local -n host_ref$1綁定外部數(shù)組函數(shù)內(nèi)部循環(huán)遍歷時(shí)能拿到完整列表。第二mysql命令失敗時(shí)用|| echo FAILED兜底而不是直接讓腳本退出。這樣才能完整巡檢所有主機(jī)不會(huì)因?yàn)橐慌_(tái)故障中斷整批任務(wù)。第三腳本開頭顯式設(shè)置 PATH避免 cron 環(huán)境變量稀疏導(dǎo)致命令找不到。第四外層用main $包一層入口函數(shù)將來想通過命令行參數(shù)指定主機(jī)列表只需要在main里把$轉(zhuǎn)成數(shù)組再傳給函數(shù)即可改動(dòng)很小。如果后續(xù)需要在巡檢時(shí)同時(shí)傳入“主機(jī)列表”和“端口列表”兩個(gè)數(shù)組nameref 方案也能輕松擴(kuò)展check_cluster() { local -n host_ref$1 local -n port_ref$2 ... } check_cluster HOST_LIST PORT_LIST一次傳兩個(gè)名字也沒有參數(shù)拆分問題這就是傳名字比傳內(nèi)容的優(yōu)勢(shì)。5. 避坑手冊(cè)與經(jīng)驗(yàn)心得5.1 報(bào)錯(cuò)排查的固定四步走結(jié)合這次排查過程我把固定動(dòng)作總結(jié)成了四步先用file命令看腳本格式確認(rèn)有沒有 CRLF、BOM。這兩個(gè)問題就算你看一百遍源碼也看不出來只有工具能檢測(cè)。用bash -n做語法檢查再用bash -x跟蹤執(zhí)行定位報(bào)錯(cuò)發(fā)生的具體行。檢查依賴的外部命令路徑which mysql、which mysqldump在腳本開頭顯式 export PATH。數(shù)據(jù)庫層面的連接報(bào)錯(cuò)優(yōu)先看錯(cuò)誤碼和 socket 路徑區(qū)分 TCP 和 socket 兩種連接方式。特別是第一步我見過不少人在bad interpreter的報(bào)錯(cuò)下糾結(jié)了半小時(shí)最后把腳本刪了重寫。其實(shí)知道原理之后這只是一個(gè) 30 秒的修復(fù)。5.2 常見問題速查表報(bào)錯(cuò)現(xiàn)象根本原因定位方法修復(fù)手段/bin/bash^M: bad interpreter腳本行尾符是 CRLFfile script.sh看輸出dos2unix或sed -i s/\r$//mysql: command not foundMySQL bin 不在 PATHwhich mysql、echo $PATH腳本開頭export PATH或?qū)懰烂罱^對(duì)路徑ERROR 2002 (HY000) #2socket 文件不存在find / -name *.sock確認(rèn)路徑指定--socket或改-h 127.0.0.1走 TCP-bash: xxx.sql: No such file or directory導(dǎo)入文件或輸出目錄不存在ls -l、mkdir -p先建目錄、先檢查文件存在再執(zhí)行函數(shù)只拿到數(shù)組第一個(gè)元素${arr}只取下標(biāo) 0打印$#和所有參數(shù)用${arr[]}展開或傳數(shù)組名用 namerefcircular name referencenameref 與循環(huán)變量同名看報(bào)錯(cuò)行號(hào)內(nèi)部引用變量用獨(dú)立命名5.3 長(zhǎng)期有效的三條習(xí)慣第一個(gè)習(xí)慣編輯器統(tǒng)一配置 LF。我在 VSCode 里把默認(rèn)行尾符改成了 LF同時(shí)項(xiàng)目根目錄放.editorconfig寫腳本時(shí)end_of_line: lf直接固化。Git 倉(cāng)庫里再加.gitattributes聲明*.sh text eollf這樣團(tuán)隊(duì)協(xié)作時(shí)不管誰在什么系統(tǒng)上編輯提交到庫里都是 LF。第二個(gè)習(xí)慣寫函數(shù)前先想清楚參數(shù)協(xié)議。小數(shù)量參數(shù)用位置參數(shù)批量數(shù)據(jù)優(yōu)先傳數(shù)組名或用外層循環(huán)單值傳入。不要一邊寫一邊改協(xié)議否則函數(shù)越改越亂。第三個(gè)習(xí)慣公共腳本上線前過一遍 ShellCheck。這個(gè)工具能檢查出未加引號(hào)的變量、誤用eval、權(quán)限問題等大量隱患比人工 review 靠譜得多。我在實(shí)際處理這類問題時(shí)還保留了一個(gè)不算優(yōu)雅但很有效的習(xí)慣函數(shù)入口處臨時(shí)加一行調(diào)試輸出打印所有收到的參數(shù)個(gè)數(shù)和值。等確認(rèn)邏輯無誤再刪掉。看起來笨但對(duì)定位“以為傳了數(shù)組實(shí)際只傳了一個(gè)值”這種靜默問題比任何技巧都直接。這兩類坑本質(zhì)上都有共性Shell 腳本的邊界條件比想象中多報(bào)錯(cuò)信息往往指向的不是真正的問題函數(shù)參數(shù)的傳遞不像其他語言那么直白。理解了內(nèi)核加載腳本的方式、理解了 Bash 參數(shù)展開的語義再遇到它們就不會(huì)慌。我更推薦的方式是把這些經(jīng)驗(yàn)沉淀成自己的一份腳本模板開頭的 PATH 導(dǎo)出、函數(shù)傳參約定、錯(cuò)誤檢查邏輯全都固化進(jìn)去以后寫新腳本直接從模板抄實(shí)測(cè)下來比每次都從零開始省心得多。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
丁香五月天激情网站| 国产精品福利视频| 色999亚洲人成色| 欧美特大AA级黄片| 97久操| 欧美狠狠鲁| 久久久久成人亚洲国产| 操屄日韩| 91综合网站| 欧美亚洲厕所精品偷拍91| 色婷婷视频| 乱伦Av网| 亚州免费啪啪视频| 波多野42部无码喷潮在线观看| 4tube欧美女厕所| 久久久久久久九九九九九九| 手机不卡视频不卡在线一二三区| 色色五月天婷婷| 女人高潮抽搐喷水视频网站| 亚欧成人中文字幕一区| 五月婷婷丁香| 五月婷婷五月天| 乱伦日本色图AⅤ| 午夜激情成人在线观看| 国产Aα| 精品国产乱码| 中国AV美女| 日本成a人v网站在线观看| 99在线精品视频| 五十路成人在线视频二区三区| 裸体美女久久久| 婷婷情色五月天| 欧美美女自慰一区二区三区| 成人熟女区| 成人综合网 欧美| 久久大香蕉手机高清| 丁香六月激情| 久热久一区二区三区| 99热免费| 久久精品中文字幕女同| 91精品网站| 91美女小视频| 久久精品国产亚洲AV先锋| 亚州色综合| 999精品久久久久久久| 男人午夜天堂| 无码操逼视频一下| 神马久久久久久伦理片| 性色av网站| 99久久e免费热视| 午夜福利免费福利视频| 丁香婷婷色五月| 中文字幕在线播放2中文字幕在线观看2| 99热这里只有精| 97玖玖人妻| 内射中出日韩在线观看视频| 亚洲淫乱骚妇AV| 四虎在线观看网站| 日本久久女同性恋视频| 大香蕉一区二区在线观看.| 久久东京伊人一本到鬼色| 岛国艾薇凹凸视频天堂| 久久啊哟| 久久中文字幕人妻熟av女蜜柚| 97伊人超碰| 9久久精品| 九九无码| 精品亚洲国产成人AV制服丝袜| 亚洲欧美激情在线视频| 校园春色宗合网| 欧美亚洲首页| 国产精品视频自拍在线| 在线视频日韩欧美国产| 亚洲情色图片区| 人妻少妇久久| 国产在线能看的你懂的| 日韩成人大片在线观看| 97色97好| 欧美激情亚洲| 无码 有码 国产18p| 992这里有精品| 大香蕉99热| 日韩三级av片| 少妇无码av专区线| 十八禁网站在线| 少妇内射视频| 无码人妻精品一区二区三区99不卡| 丁香五月综合| 丰满精品人妻少妇久久字幕| 熟女日韩| 青青草在线视频美女| 亚洲无992tv| 乱论91| 91亚洲人电影| 欧美天天综合在线| 婷婷91| 亚洲性猛交| 1769成人国产精品视频| 五月激情天| 91国产在线精品| 日韩性爱小视频| 99色在线| 日日夜夜精品视频| 亚洲男人bt天堂| 免费国产| 日本激情免费大片| 91久久国产综合精品| 97超碰欧美中文字幕| 综合 欧美 亚洲 日本| 五月天激情国产综合婷婷婷| 青青草原香蕉日本Ap| 久久这里是精品| 亚洲欧美天堂在线| 国产福利视频精品视频| 国模不卡一本二本三电影| jizz啪啪| 免费网色网站| 亚欧免费| 国产久久男人天堂| 免费操逼视频下载| 国产精品夜夜夜| 国产女人操逼视频| 超碰综合97在线| 久久高清欧美国产| 欧美色91| 久操黄色视频| 久久性爱视频免费看| 国产后入精品| 日本孕妇一区二区视频操逼免费看| 久久丁香五月天| 九九在线视频| 亚洲天堂精品日韩电影| 四虎影视在线| 精品人体无圣光凹凸| 青娱乐手机日韩在线视频| 国产一区二区三区视频在线看| yazhousetuoumei| 香蕉欧美| 九九九精品色乱九九九| 91婷婷伊人狠人| 人人爱人人乐人人操| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 亚洲熟女乱色一区二区三区久久久| 91成人高清在线观看| 亚洲 另类 丝袜 自拍 动漫| 亚欧国产无码精品在线| 女性喷水高潮在线观看| 日日日色色色色色| 爱爱60秒免费视频| 高清无码一区二区三区| 久久久久久人| 东北女人| 欧美老熟另类| 五月丁香啪啪啪| 边做饭边操逼逼| 人妻大香蕉| 亚洲综合激情五月久久| 被男人吃奶很爽的毛片| 国产深喉| 麻豆天美传媒在线视频天堂| 婷婷五月在线视频| 午夜电影在线观看无码专区| 精品对白久久不卡| 1000午夜黄色| 欧美在线官网| 亚欧韩av| 成人av毛片在线观看| 懂色av中文字幕一区二区三区天美 | 在线性黄高清免费视频| 亚洲一区二区三区春色| 一区超碰一区| 亚洲国成人情色好看电影| 图片区小说区| 久久久久久久九九九九九九| 麻豆成人影音在线| 97少妇人妻中文字幕久久| 亚洲国产第一页综合视频| 亚洲欧洲精品视频发布| 天天草夜夜草高潮片| 美女黄页网站| 中文久久久| 五十路熟女,国产欧美精品区一区二区三区 | 超碰调教97| 蜜乳性色无码专日粉嫩骚逼AV| 插入逼91| 98久久| 久9综合在线| 丝袜视频一区二区在线播放国产中文 | 肉丝网站91| 国产又色又爽又舒服的三级视频| 成人线上超碰| 国产成人亚洲精品无码古代早漏男| 三久久久四久久久久| 国产狂喷潮在线精品| 人妻嗯啊啊在线播放| 国产在线播放成人免费| 91综合网站| 好湿好紧视频| 啊啊在线| 91亚洲最新在线| 白丝在线一区| 亚洲狠狠入| 亚洲欧洲激情| 日本精品九九九| 欧亚久久偷拍视频| 久久99手机免费视频| 99热这里只有精| 99激情| 亚洲精品成人| 亚洲第一综合| 情侣开房子拍 日韩无码 女的很漂亮| 欧美在线视频99| 国产伦乱91| 亚洲精品国产精品乱码不99| 亚码激情| 久久偷拍人| 国产AV人人 夜夜人人澡| 亚洲综合影视| 亚洲色图综合网| 九九人妻| 亚洲色婷婷久久久综合日本| 色婷婷六月丁香七月婷婷| 永久免费av无码网站国产app | 亚洲伊人久久综合97| 欧美日韩大香蕉| 91精品久久久久五月天精品| 8050午夜少妇无码| 日韩精品99999| 亚州情色j区| 好看的91视频| 人妻91少妇| 91欧洲国产成人久久精品网站| 99久久久无码国产精品性啊聊| 熟女激情综合网| 中文字幕91页| 水野优香在线观看| 91网站在线播放| 欧美美女视频| 777AV电影| 久久精品色欧美aⅴ一区二区| 色婷婷丁香五月| 91青视频| 不卡六六在线91| 青青操网| 激情五月天色色| 91人妻人人妻| 四虎精品一区| 婷婷午夜成人色中色| 色婷婷综合久久久久中文国产精品一区中文字幕,国产福利电影一区二区三区 | 性在久久久久久| 日本久久99| 日韩AV一区二区三区三州三州| 粉嫩久久久久| a亚洲欧美色欲| 国产AV久久野战精品| 午夜免费视频1000| 亚洲黄a三级三级三级看三级| 色九九久九九| 美国人人操人人操| 一区二区三区色综合| 久草这里只有精品| 5月婷婷6月六月丁香| 在线综合 亚洲 欧美中文字幕 | 日本欧美中文字幕| 亚洲黄色影视| 清纯唯美综合| 中文字幕精品资源在线| 欧美 传媒 麻豆 日韩 偷拍| 亚洲欧美一区二区网址| 男人天堂一区二区| 中文字幕三四五区| 国产18精品亚洲精品| 日韩99神马视频播放| 国产精品97视频| 2019天天干天天操| 久久久久久久综合,国产| 无码精品久久| 久草婷婷| 日韩精品在线放| www.97在线| 啊啊啊啊免费视频| 久久久97| 久操国产在线| 一本道综合色图| 91超碰在线观看| 国产久久av| 人妻在线大香蕉| 精品国产av一区二区三区四区入口| 99无码视频| 天天干夜夜操一区二区| 2024人人操人人摸| 加勒比综合88| 又大又白奶子| 偷拍精品一区二区三区| 日韩性色b| 999综合网| 日本久操视频| JIZZJIZZ亚洲女人被躁| 粘花网06av视频| yw尤物av无码点击进入麻豆| 欧美狠狠操| 欧美探花网| 欧美韩日精品资源| 婬女免费一二三区A片| 久久精品无码熟妇一区二区三区视频导航 | 久久九九网| 日日摸日日弄日日拍| 国产日本久久免费精品| 91少妇通奸网站| 91足交| 中国熟妇| 欧美天堂日韩三级国产传媒| 精品偷拍13p欧美dodk视频| 激情人妻另类| 亚洲色诱惑| 蜜臀久久99精品久久久久久-DVD | 日躁天天爽爽| 日日AV加勒比| 粉嫩av在线一区二区| 国产传媒美日韩av| 玖玖资源综合在线视频| 欧美九九九| 亚洲熟女国产综合另类| 欧美性爱1080p| 怡红院网站在线视频| 婷婷五月天福利| 日欧操屄| 少妇贴图| 神马久久啊啊| 婷婷色色五月天| 99r九九| 黑人狂躁日本妞一区二区三区| 1024手机看片欧美日韩| 欧美男人一区| 欧美另类综合久久| 蜜臀久久99精品久久久久久-DVD原版全| 色哟哟-国产专区| 伊人网综合在线视频| 天天日夜干| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 99热18| 欧美日韩性爱电影在线| 天天影视综合色| 亚洲天堂自拍| 91蜜臀在线久久久久| 国产传媒操逼视频| 91天天看| 亚洲性高潮| 久久伊人青青草| 久99| 女人午夜视频777| 蜜臀99久久| 国产精品一区二区麻豆| 天天日天天操VV| 日韩亚洲美州欧洲综三区一品在线| 欧美综合娱乐久久| 国内精品a| 国产强奸无码乱伦| 丰满人妻一区二区三区四区| 后入式999| 丁香婷婷激情五月天无毒不卡| 精品视频久久久久九九九九9999| 成人网站 免费观看| 色在线综合| 国产精品96久久久久久| 熟妇在线视频一区二区| 色牛牛AV| 久久久精品成人国产| 免费看片黄| 日本色色色网站免费看不卡| 99999国产精品| 97在线观看视频| 丝袜狂射91| 91美女看B| 鸥美插入视频| 久久久久亚洲一区女同性恋中文字幕| 五月天综合网| 日韩懂色网| 欧美一二三区四五区| GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 安徽熟妇视频| 久久99草| 蜜臀久久精品久久久久视频| 伊人嫩草| 色亚洲欧美| 中文字幕一区二区三区四五区| 91亚洲丝袜| 日本精品九九九| 天天情欲宗合网| 91N综合网在线| 欧美日韩亚洲国产中文永久天天看| 青青欧美| 深爱伊人影院| 人妻少妇精品| 在线免费观看日韩一区| 人人操,操人人| 久久6热视频免费观看| 人人操人人摸人| 99热最新网址| 欧美亚洲国产自久久| 极品内射| 久久精品国产97欧美精品亚洲 | 60秒试看最爽10分钟网站| 歐美一級亂黃99在綫精品| 欧美狠狠操| 韩日自拍| 久久久久国产精品久久久| 欧州一区二区三区四区| 国产激情av女片自拍| 欧美在线视频99| 日本伦理一区二区| 东北操逼| 精品午夜福利| 欧美日韩色综合网| 日韩啪啪网| 一区二区精品更新提醒| 97超碰色中文字幕| 一级性爱网| 日韩欧美中文| 97色冈| 涩涩久久精品| 精品人妻中文字幕高清| 色婷婷久久综合超碰| 欧美日韩中国x| 九色黄站| 日韩一级免费性爱| 大吊色| 色香网| 欧美一级黄色免费专区| 乱色视频中文字幕| 狠狠色一区二区中文字幕| 人妻熟女一区二区在线视频| 黄片视频,下载| 天天日天天舔天天喷天天射| 999九九精品| 黄骗免费网站| 国内三级自拍小视频在线观看| 日本一区二区三区精品| 亚洲高清欧美总合| 操操逼操操逼操操逼逼| 东京成人一区| 熟妇乱伦一区二区| 婷婷五月天网| 神马久久免费电影观看| 欧美熟女操屄| 亭亭在线资源| 岛国在线免费视频| 三上制服丝AV| 91狠狠综| 射丝袜高跟鞋99| 日韩情色一区二区| 五月天开心网| 中文字幕欧洲有码| 国产精品宅男免费| 嗯嗯啊啊好大好爽| 人妻丰满熟妇一区二区三| 啊啊啊用力在线观看| 日曰骚久久精品| 国产 日韩 欧美 中文 另类,国产 欧美 另类 制服 变态,高清 日韩 欧美 中文,高 | 久久99操天天日| 午夜福利一区二区三区四区五区色婷婷| 五码视频在线观看| 日日夜夜噜| 大香蕉乱级| 久热久一区二区三区| 神马久久久久久久| 久久一区无码| 91久久久亚洲| 亚州综合电影| 蜜乳AV.COM| 一区二区三区 丝袜高跟| 干我久操| 国产日韩人人| 国产日韩在线播放| 4tube欧美女厕所| 亚洲欧洲综合视频在线| 97超碰9| 天综合网| 操逼网站网站| 欧美成人综合| 亚洲黄色影视| 激情婷婷综合久久| 亚洲黄a三级三级三级看三级| 免费一级黄色录像影片| 嗯嗯啊啊好大好爽| 色情婷婷| 成人午夜高潮av猛片| 夜夜久久| 国产成人bd在线观看| 91中文字幕在线观看| 口爆综合网| 男女日B国产| 亚洲色悠悠久久88| 欧美激情五月天| 国产精品内射婷婷一级二| 97欧美精品综合| 手机在线播放国产福利| 蜜臀Av一区二区三区| 欧美日韩夜夜| 黄色AAAAAAAAAAA大片| 超碰偷拍| 嗯嗯,好大,好爽,好骚| 免费作爱一级视频| 91久久久亚洲| 亚洲素人综合| 99爱久久视频频| 91丨熟女丨丰满熟女| 啊啊啊啊啊啊啊啊在线观看| 国产乱码精品久久久久久| 91在线无码精品秘 软件| 免费视频一二三区| 久久熟女久| 一二三四免费视频| 高清无码 国产精品| 国产精品三级视频网站| 国产在线综合福利网站| 日韩在线观看AV| xxx亚洲午夜天堂| 国产情侣自拍在线播放| 26uuu成人影片| 久久久久久久久久久精| 亚洲自拍一区夜夜操| www色色色com| 日韩一性一交一A片俄罗斯| 干超碰碰熟女| 99少妇| 超碰无码五月97| 中文字幕视频一区视频二区| 丝袜美腿诱惑亚洲欧美视频在线观看| av无码av无码专区| 亚洲av综合伊人久久| 国产精品久久久亚洲第一牛牛_在线观看 | 性欧美第一页| 日韩无码AB| 久艹伊人精品综合在线| 婷婷丁香六月天| 日韩成人性爱电影在线播放| 熟女乱伦A| 日本一区二区亚洲综合| 搡老女人老91二区| 麻豆天天躁天天揉揉AV| 中文字幕日韩情色| 蜜臀aV午夜一区二区三区| 黄色十八禁网站| 99超碰色| www.四虎在线| 91在线美女| 色999人与兽| 久久精彩视频| 色婷婷在线视频| 亚洲天堂 视频你懂的| 性爱精品一区| 国产原创剧情在线丝袜 | 九九人妻| 春色综合免费| 91激情国产| 一区二三区四区视频大全套| 欧洲精品网| 91爱看| 九九国产热| 亚州色国| 九九九九九九九| 成人天天爽| 国产诱惑| 久久久天堂| 怡春院久久| 啊啊啊免费视频| 色姑娘综合网| 性饥渴少妇av无码毛片| av天堂精品久久| 日本激情免费大片| 天天色播| 97蜜桃综合| 91色图片| 成人精品欧洲亚洲| 992大香蕉| 久久久久久久9| 日韩操啪| 国产精品制服丝袜清纯唯美 | 精品高清牛人盗摄一区二区三区中文字幕A片免费在线观看 | www.av家庭乱伦| 一级性爱视频免费在线| 精品人妻av在线播放| 欧美亚洲日本视频久久久| 日韩一级免费性爱| 后X久久| 久久、1234| 国产熟码AV| 丰满人妻一区二区三区| 欧美亚洲色图另类国产| 色播综合| 亚洲色图国产另类| 国产嫩草精品A88AV| 欧美影院一区二区三区| 中文字幕日韩人妻视频一区二区三区| 九九色图| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 伊人久久亚洲色欲综合网站| 亚洲精品欧洲色| 澳门黄片一香蕉视频| 操逼网免费无码视频| 99热这里只有精| 吊色| 在线毛片片免费观看| 国产精品视频白浆免费| 久久精品免费| 日韩pv中文| 亚洲欧洲视频小说在线观看| 玖玖无码超碰| 午夜福利合集| 久久精品 六十路 熟女 欧美| 亚洲自拍一区夜夜操| 亚州,欧美在线| 成人无码在线超碰网| 免费视频无码| 久久久久久久久国产| 国产高清午夜成人在线观看| 亚洲五月婷婷| 老司机午夜福利视频一区二区| 亚州91| 欧美特大黄一级片片免费| 97久久精品国产| 久久这里只有精品9| 亚洲欧美国产其他二区| AV中文字幕剧情1区2区3| 思思热一热婷婷热一热| 三级色影综合网| 亚洲中文字母在线播放| 亚州色国| 欧美成人A√在线一区二区| 91黑丝在线播放| 少妇熟女视频一区二区三区| 日韩 欧美 视频 在线 一区| 久久久久ab| 久久男人的天堂| 9 9精品一区二区三区| 97jingpin| 人人人人插| 欧美中字二区| 精品丝袜无码一区二区三APP| 玖玖综合.com| 亚洲97精品| www.91色| 欧色网址| 大香蕉操久久| 97香蕉网| 天天干天天日天天射黄色大片| 蜜臀久久99精品久久久久久婷婷 | 福利天堂| 日韩欧美中文| 91在线丝袜| 亚洲欧美日韩夜夜| 青青草影视蜜久久| 五月婷婷性爱| 欧美亚洲激情| 99啪啪视频| 中文字幕55555| 日韩精品资源专区二区| 熟女欧美日韩综合婷婷| 最好看的中文字幕在线2018| 日本孕妇孕交| 亚洲欧美日韩夜夜| 少妇高潮九九九九| 亚洲综合码| 亚洲国产精品9999在线观看| 97网址97| 天天爽天天| 亚洲中文字幕精品一区| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 超碰亚洲97| 成 人 A V免费视频在线观看| 国产传媒美日韩av| 黄片com.| 五月天伊人网| 精品97精品97| 亚洲精品无码少妇久久| 91爱| 夜草欧美| 色五月丁香五月| 亚洲国产精品无码AV久久| 日日AV加勒比| 午夜丁香| 蜜乳成人AV| 91亚洲狠狠色| 超AV色女| 久久久久久精品免费看A级| 青青草大香蕉视频| 国产精品午夜成人福利| 久久香蕉国产线看观看猫咪av| 天天干18禁| 91爱看| 男人天堂久久精品| 上海一级黄片| 黄色无码高清黄色无码网站| 性九九九九九九| 91肏屄网| 久9热| 成全在线观看免费观看| 夜色综合| 伊人久大| 欧美A√综合网| 人妻激情偷乱视频一区二区三区| 这里只有精品视频在线观看麻豆| 久久久久久综合久久伊人蜜月| 无遮挡一级毛片视频免费的| 美女91网| 欧美日韩美女精品久草一区二区三区 | 男人把坤坤插入女人的下体 | 伊人操你| 欧美日韩资源| 成人日本片久久久蜜桃| 日韩啪啪啪视频| 老熟女91av| 婷婷中文字幕| 中国探花熟女| 国产精品嫩草影院免费| 91在线精品一区二区三区| 99re视频在线播放青草| 国偷自 一区| 日韩图区| 蜜桃久久久久久久久久久久| 熟女一区二区| 国产馆极品诱惑| 丁香六月激情| 国产激情久久| 综合色99| 婷婷天堂站| 久久久免费一级黄片| 岛国激情视频软件| 中文字幕乱码人妻二区三区| 91一区二区三区蜜桃| 亚洲欧美色图片| 91美| 日本加勒比无码专区| 在线天堂资源亚洲| 2017天天操天天日| www.人人摸在线视频| 玖玖爱伊人玖玖爱| 茄子社区国产精品| 一二视频神马久久传媒| 亚洲文学偷乱拍啪啪啪啪| 天堂涩涩| 欧美精品欧美精品系列 | 这里只有精品视频在线观看麻豆| 91亚洲色人| 福利操逼| 人人妻人人狠人人| 久久久九九网站| 日本福利二区视频| 25国产精品免费观看| 日本三级韩三级99久久| 久久手机好看网站| 鸥美插入视频| 天天操天天日天天干| 丝袜视频网国产90| 色香综合| 欧美日韩大香蕉| 操逼片国产| 国模精品一区二区三区苹果色戒 | 精品女同一区二区三区| 久久精品—区二区三区内射| 永久电影三级在线观看| 日韩免费看在线黄色片| 国产精品成人无码av无码免费| 亚洲AV无码国产精品久久久久 | 玖玖无码超碰| 欧美国产精品久久九九| 午夜一级免费毛片| 国产小u女在线观看| 清柠毛片| 国产熟妇一区二区| 精品少妇一区二区| 东京热一区二区中文字幕| 国产一级高跟丝袜| 97人人草| 91高跟美女在线播放| 欧美在线第五页| 亚洲精品97| 乳欲人妻办公室奶水| 九九av| 天天看特黄的免费网站| 久久熟女嫩草成人片免费| 亚洲福利影院一区久久| 欧亚性爱啪啪| 亚洲情色一区综合| 69久久| 亚洲天堂五月天国产| 熟女突然公开看18禁影片| 日本三级小说中文字幕| 99久在线精品99re8| 亚洲乱码精品一区二区| 99久久久无码国产精品性男| 色哟哟-国产专区| 欧美丝袜91| 搞中出久久| 欧美超碰9798| 美女十八禁| jk白丝没脱就开始啪啪| 美女黄页| 另类小说欧美激情校园春色| 国产中文精品一区二区在线观看| 丰满欧美少妇| 亚洲狠狠入| 岛国网址国产 | 青草地一本线一区二区三区| 亚洲乱伦图片视频| 日韩av三四区| 综合97| 99精品在线观看| 97亚洲国产| 国产女人和拘做爰视频 | 久久精品导航| 人人操人人大香蕉| 久久久专区| 天天日天天干天天色| 欧美美女自慰一区二区三区| 亚洲乱熟女一区二区| 国产精品干干干| 青青操在线亚洲视频观看欧美在线| 欧美精品一二三| 91Chinese在线| 亚洲日韩97| 亚洲一区二区三区AV无码| 青青草字幕AV| 99久久久无码精品国产人| 欧美永久激情一区二区| 国产粉嫩蜜臀av一区二区三区| 激情小说五月天| 蜜臀99久久精品| 睡产熟女乱伦| 四季av一区二区凹凸精品小说| 国产精品无码av嫩草| 亚洲第一二区另类图| 中文字幕日韩人妻视频| 欧美日韩国产男人| 五月婷婷六月丁香网址| 久久精9| 99久久久无码精品国产人| 日本 免费 一区二区三区 久久香蕉 | 久久久四区| 欧美亚洲丝袜人妻制服99| 精品亚洲天堂| 99热亚洲天堂| 久久草草亚洲蜜桃臀| 黑人天8A∨高清网站| 性爱网站一区二区| 欧美夜色| 中文字幕亚韩| 欧美色综合网| 亚洲 欧美 中文 日韩超碰| 秋霞怕怕片| 麻豆国产97在线| 91色图片| 综合免费无码中文| 蜜臀网址在线| 色性综合| 成人26uuu| 老女人老91妇女老热女| 欧亚性爱视频免费看| 精品一区二区三区蜜桃| 日韩av女优在线免费一区| 91精品国产91久久福利| 好看的久久不射无码影视影院| 亚洲 国产 精品一区| 亚洲少妇视频| 日本加靬比网站发布页| 国产高清MV操逼视频| 97久久超碰日韩精品| 日韩三级网址| 操逼不卡中文字幕| 992视频一区| 青青草白白色| www九九热| 亚洲性爱成人| 欧美色图片欧美色图| 欧美性天天影视| 欧美一级黄片视频在线| 欧美性爱超碰97| 你草精品在线视频| 五月天婷婷久久| 免费av在线播放二区| 视频在线97| 欧美熟女激情| 91精品黄在线观看| 翔田千里爆乳巨臀无码| 亚州五月| 一区二区 电影 亚洲| 凹凸视频特色日本特黄| 久久久精品中文字幕爱豆| 精品久久久一本一道| 欧美日韩人人精品| 综合激情五月丁香| 精品欧美А∨无码黑人大荫蒂 | 天堂av2019| 在线v中文字幕一区二区三区| 精品九九九| 国产精品一区二区麻豆| 蜜臀AV成人精品蜜臀| 9九九九九视频在线观看| 黄片aaaaa一区| 国产精品免费1区2区视频| 中文区中文字幕免费看| 中文字幕伊人| 1234区中文字幕在线观看_青青草国产在线_日韩一区二区 | 亚洲 欧美 第一页| 99国内熟女露脸视频| wwe 天天干.com| 夂久色| 日韩国产中文字幕| 一区二区三区黄片免费观看| 亚洲无码电影久久久| 骚逼高潮久久精品| 8050无码八戒| 国产精品熟女九色九色蜜臀| 亚洲无码精品AV久久久| 91美女在线| 91白虎| 国产超碰97| 亚洲AV色图一区| 天堂综合| 精吧天堂| 天堂综合| www.av不卡中文字幕| 东京热不卡视频| 欧美伦乱爱| 欧美熟妇亚洲版| 久久香蕉超碰97国产精品| 日本精品国产视频| 国产精品 午夜福利| 天天操女人| 久久国产精品91| 久久婷婷一区二| 精品国产乱码久久久久久影片| 五月婷婷色| 蜜臀少妇一区二区| 国产免费一区二区三区最新不卡| 久热免费视频| 亚洲熟妇自偷自拍另欧美| 亚洲丝袜色| 丰满翘臀美女影院视频| 久久久9视频| 免费看污网站| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 欧美日本天堂| 伦理弟一页| 风骚少妇视频中文字幕| 香蕉大久久久| 超碰社区97| 午夜噜噜噜| 精品对白久久不卡| 亚洲无线观看久久| 青青操网| 精品视频免费在线一区| 亚洲强奸乱伦影视网| 色婷婷色99国产综合精品| 九九热在线精品视频| 日本三级韩三级99久久| 亚洲人在线成线成人| 性性欧美| 人妻蜜桃臀| 人妻夜夜爽天天爽三区麻豆AV网站| 欧美成人免费在线观看| 中文人妻av高清一区| 日本国产欧美高清在线| 五月天激情网图片| 91最新综合| 97国产综合欧美| 久久系列| 热久久国产| 成人在线视频网| 狼人综合婷婷激情四射 | 91情色| 精品无码不卡视频| 97精品综合| 欧美三级免费伊人| 午夜精品久久久99热蜜桃的功能特点| 97亚洲色图| 中文字幕五月婷婷免费| 亚洲精品成人激情在线| 任我爽视频在线观看| 色天欧美| 免费精品无码一级毛片牛牛影视| 亚欧性爱无码| 夜夜操狠狠操| ai欧美亚洲小说| 亚欧美综合网| AV不卡在线| 狠狠狠一区二区三区| 色在线69堂| 超碰97久久| 中文字幕免费看大片| 欧美成不卡网| 亚州高清AV| 国产一区自拍欧美日韩| 伊人久久88国产女| 欧美性天天影院| 久久伊人最新网址视频| 亚洲一区二区精品福利| 欧美大香蕉97| 综合97| AV电影在线播放| 欧美大色交| av爱爱爱| 日韩AV一区二区三区四四| 国产精品3| 黄色av网站在线播放| 啊啊啊啊啊啊啊国| 欧美激情内射| 把腿张开老子CAO烂你| 97激情97激情| 久久78| 这里只有精品视频| 亚洲日韩资源| 人人操,操人人| 亚洲人妖网| 白丝被操91| 91超碰人人| 欧美色涩| 激情五月天网站| 伊人宅男大香蕉| 女同性恋久久| 日韩三级性| 在线国产福利网址导航| 91视频成人福利网站在线一区| 亚洲综合97| 婷婷激情啪啪| 欧美综合1性辶| 任你爽视频| 美女91网址| 欧美中出1| 九九热只有精品| 日韩人妻一区二区精品| 熟女露脸激情自拍视频| 26uuu国产成人综合| 国产情色第一第二页在线观看| a一区二区三区乱码在线| 91麻豆天美传媒HD| 五十路六十路七十路熟婆| 观看视频图片一区二区三区| 欧美日韩国产成人高清| 丝袜综合色图| 大学生口爆吞精| 色男人色天堂东京热| 中文字幕一区二区韩| 四虎影视永久在线观看精品免费网站 | 亚洲美女精品| 国产男女边吃边摸视频网站| 久久久穴999| 国产一区二区精品久久99| 美女丝袜激情小说| 亚洲日本韩国在线| 加勒比综合88| 久久9精品视频| 99视频这有这里有精品| 成人精品一区二区三区| 亚洲成?V人片在线观看福利| 成人资源中文字幕在线观看| 精品色色| 综合亚洲欧美精品日韩?v| 久久久熟妇熟女国产| 日本女优在线视频福利| 亚洲清纯综合| 嗯嗯,啊啊,国产精品| 中文字幕一区二区免费在线| 九九综合网| 五月天伊人| 亚洲另类欧美精品| 97精品97久久| 夜夜操狠狠操| 日本人妻中文字幕| 久久精品六区| 日韩国语字幕| 国产毛片久久久久久久| 久久婷婷一区| 在线人妻熟女一区二区三区四区五区| 热久久国产| 蜜区区视频79| 亚洲男人天堂2012| 伊人女女资源在线观看| 97免费在线观看| 超碰这里只有精品| 99热网站| 亚洲图片激情综合另类| 欧美图片色五月天| 中文字幕一区二区三区人妻少妇在线 | 岛国小电影| 亚洲乱码国产乱码精网站| 国产三级片在线观看| 国产精品熟妇一区二区三| 可以免费观看的av| 日本性爰一道本| 欧美综合91| 91国产丝袜美女| 任我爽视频在线观看| 国产三级日产三级韩国三级| 午夜精品久久一区二区| 天堂精品一区| 婷婷激情一区二区三区俺也去| 无码视频黄色网战| AV一起草在线| 好吊色青靑草| 大干人妻| 无码视频一区二区| 久久国产三区| 欧美精品日韩一区二区| 大学生口爆吞精| 精品999999| 老司机香蕉| 亚洲清纯唯美| 精品一区二区麻豆| 97色冈| 99婷婷| 深夜激情无码| 波多野42部无码喷潮在线观看| 97亚洲欧美| 欧美日韩欧美| 干妹子| 99re在线视频| 欧美综合在线91| 成人久久无码www| 欧美.亚洲.另类.丝袜.制服.诱惑| 亚洲aV性爱| 亚洲乱码国产乱码精网站| 久久久久亚洲av综合波多野制衣| 97超碰碰| 人妻丝袜美腿中文字幕| 欧美色干| 久久久久久久久久久久97| 国产精品69久久久久孕妇欧美| 中文字幕超碰CAO| 色诱avtt| 日日干日日操五月天伦理视频| 少妇丝袜在线观看AV| 草草草视频| 国产9熟妇视频网站| 久久精品99| 国产麻豆一区二三区| 一区二区三区色综合| juliaann丝袜大战黑鬼| 爱啪精品一区| 伊人操操| 国产美女口爆吞精| 美骚妇av高清在线| 五月天久久婷婷亚洲| 亚洲男人的天堂V| 亚洲色图 欧美热图 清纯唯美 另类自拍 | 色噜噜国产在线| 久久免费中文字幕在线观看| 色色色色色色色色色色色色色色综合| 九九热在线视频| 日韩有码一区三区| 青青国产精品在线| 久久这里都是精品| 成人熟女视频一区二区三区| 91欧美偷拍| 97资源免费视频| 欧美91久久久久| 嗯嗯嗯啊啊在线观看| 大香蕉伊人75| 亚洲风情在线观看|