溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Linux系統(tǒng)shell腳本的用法

發(fā)布時(shí)間:2020-05-28 16:42:42 來源:億速云 閱讀:260 作者:鴿子 欄目:系統(tǒng)運(yùn)維

shell腳本
確切一點(diǎn)說,Shell就是一個(gè)命令行解釋器,它的作用就是遵循一定的語法將輸入的命令加以解釋并傳給系統(tǒng)。它為用戶提供了一個(gè)向Linux發(fā)送請(qǐng)求以便運(yùn)行程序的接口系統(tǒng)級(jí)程序,用戶可以用Shell來啟動(dòng)、掛起、停止甚至是編寫一些程序。 Shell本身是一個(gè)用C語言編寫的程序,它是用戶使用Linux的橋梁。Shell既是一種命令語言,又是一種程序設(shè)計(jì)語言,作為命令語言,它互動(dòng)式地解釋和執(zhí)行用戶輸入的命令;作為程序設(shè)計(jì)語言,它定義了各種變量和參數(shù),并提供了許多在高階語言中才具有的控制結(jié)構(gòu),包括循環(huán)和分支。它雖然不是 Linux系統(tǒng)內(nèi)核的一部分,但它調(diào)用了系統(tǒng)內(nèi)核的大部分功能來執(zhí)行程序、創(chuàng)建文檔并以并行的方式協(xié)調(diào)各個(gè)程序的運(yùn)行。

shell腳本的優(yōu)勢(shì)在于處理操作系統(tǒng)底層的業(yè)務(wù) (linux系統(tǒng)內(nèi)部的應(yīng)用都是shell腳本完成)因?yàn)橛写罅康膌inux系統(tǒng)命令為它做支撐。2000多個(gè)命令都是shell腳本編程的有力支撐,特別是grep、awk、sed等。例如:一鍵軟件安裝、優(yōu)化、監(jiān)控報(bào)警腳本,常規(guī)的業(yè)務(wù)應(yīng)用,shell開發(fā)更簡(jiǎn)單快速,符合運(yùn)維的簡(jiǎn)單、易用、高效原則。

shell腳本
打開文本編輯器(可以使用vi/vim命令來創(chuàng)建文件),新建一個(gè)文件test.sh,擴(kuò)展名為sh

輸入一些代碼,第一行一般是這樣:

[root@zhaocheng ~]# cat test.sh 
#!/bin/bash
echo "Hello World"

[root@zhaocheng ~]# bash test.sh 
Hello World

"#!" 是一個(gè)約定的標(biāo)記,它告訴系統(tǒng)這個(gè)腳本需要什么解釋器來執(zhí)行,即使用哪一種Shell。
echo命令用于向窗口輸出文本

查看系統(tǒng)中的解釋器

[root@localhost ~]# cat /etc/shells 
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
/bin/tcsh
/bin/csh

輸入echo $SHELL默認(rèn)系統(tǒng)顯示/bin/bash

[root@localhost ~]# echo $SHELL
/bin/bash

輸入bash -version顯示shell版本

[root@localhost ~]# bash -version
GNU bash, version 4.2.46(2)-release (x86_64-redhat-linux-gnu)
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

腳本書寫規(guī)范
建議統(tǒng)一存放目錄,方便運(yùn)維的管理查找去執(zhí)行
[root@localhost ~]# mkdir /shell/scripts -pv
腳本以.sh為擴(kuò)展名
開頭指定腳本解釋器。
開頭加版本版權(quán)等信息,可配置~/.vimrc文件自動(dòng)添加。
腳本不要用中文注釋,盡量用英文注釋。

代碼書寫優(yōu)秀習(xí)慣
成對(duì)的內(nèi)容一次性寫出來,防止遺漏,如[  ]、' '、" "等
[  ]兩端要有空格,先輸入[  ],退格,輸入2個(gè)空格,再退格寫。
流程控制語句一次書寫完,再添加內(nèi)容。(if 條件 ; then  內(nèi)容;fi)ddd
通過縮進(jìn)讓代碼易讀。
腳本中的引號(hào)都是英文狀態(tài)下的引號(hào),其他字符也是英文狀態(tài)。

shell腳本的執(zhí)行

[root@localhost scripts]# chmod +x test.sh 
[root@localhost scripts]# ls
test.sh
[root@localhost scripts]# ./test.sh 
Hello World
[root@localhost scripts]# source test.sh 
Hello World
[root@localhost scripts]# bash test.sh 
Hello World
[root@localhost scripts]# sh test.sh 
Hello World

**shell的變量
變量可以分為兩類:環(huán)境變量(全局變量)和普通變量(局部變量)

  環(huán)境變量也可稱為全局變量,可以在創(chuàng)建他們的Shell及其派生出來的任意子進(jìn)程shell中使用,環(huán)境變量又可分為自定義環(huán)境變量和Bash內(nèi)置的環(huán)境變量

  普通變量也可稱為局部變量,只能在創(chuàng)建他們的Shell函數(shù)或Shell腳本中使用。普通變量一般是由開發(fā)者用戶開發(fā)腳本程序時(shí)創(chuàng)建的。

環(huán)境變量
可以通過env,或者export獲取到系統(tǒng)中的環(huán)境變量**

[root@localhost scripts]# env
XDG_SESSION_ID=141785
HOSTNAME=zhaocheng
SHELL=/bin/bash
TERM=xterm
HISTSIZE=3000

輸出系統(tǒng)中的變量

[root@localhost scripts]# echo $HOME
/root
[root@localhost scripts]# echo $USER
root
[root@localhost scripts]# echo $HISTSIZE
3000
[root@localhost scripts]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/date/soft/logstash-7.5.0/bin:/root/bin

普通變量
一般在本地設(shè)置并執(zhí)行的,但是在一個(gè)腳本中去執(zhí)行就是無效的

[root@localhost scripts]# xiaoming=26
[root@localhost scripts]# echo $xiaoming
26
[root@localhost scripts]# cat test.sh 
#!/bin/bash
echo $xiaoming

[root@localhost scripts]# bash test.sh 

這樣去執(zhí)行是無法獲取到普通的變量的,因?yàn)檫@是本地的變量值,如果將它加入到系統(tǒng)變量中當(dāng)然這就獲取到了
而剛才通過export命令查看到$PATH就是系統(tǒng)變量的,當(dāng)然這樣的,我們執(zhí)行就能在我們腳本中直接去調(diào)用這個(gè)變量

[root@localhost scripts]# cat test.sh 
#!/bin/bash
echo $PATH
[root@localhost scripts]# bash test.sh 
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/date/soft/logstash-7.5.0/bin:/root/bin

現(xiàn)在我們將我們平時(shí)定義的變量加入到shell中,一般開發(fā)一些腳本的時(shí)候方便管理也都會(huì)直接將變量在我們?nèi)肿兞恐腥フ{(diào)用,提升腳本效率與清晰,變量為大寫,這種也是不建議去使用的,退出時(shí),變量就失效,建議寫到腳本中
查看我們的系統(tǒng)加入的變量可以使用export去查看

[root@localhost scripts]# export XIAOMING=26
[root@localhost scripts]# cat test.sh 
#!/bin/bash
echo $XIAOMING
[root@localhost scripts]# bash test.sh 
26

簡(jiǎn)單示例
定義變量將變量導(dǎo)入到系統(tǒng)變量中

[root@localhost scripts]# export TENGXUN=mahuateng
[root@localhost scripts]# export ALI=mayun
[root@localhost scripts]# export BAIDU=liyanhong

[root@localhost scripts]# cat test.sh 
#!/bin/bash
echo $TENGXUN
echo $BAIDU
echo $ALI

執(zhí)行效果是直接調(diào)用我們的系統(tǒng)變量,而不需要腳本中再去寫上面的語法,不過都可以使用,根據(jù)自己的習(xí)慣

[root@localhost scripts]# bash test.sh 
mahuateng
liyanhong
mayun

另外就是這里如果沒有寫進(jìn)系統(tǒng)變量也能去調(diào)用到,可以使用source,這樣也能獲取到

[root@localhost scripts]# LIHONGLEI=lei
[root@localhost scripts]# cat test.sh 
#!/bin/bash
echo $LIHONGLEI
[root@localhost scripts]# source test.sh 
lei

也可以將這個(gè)加入到/etc/profile中也可以執(zhí)行

[root@localhost scripts]# cat test.sh 
#!/bin/bash
echo $PING
[root@localhost scripts]# tail -1 /etc/profile
PING=guo

這個(gè)需要source /etc/profile一下才能獲取到

[root@localhost scripts]# source /etc/profile
[root@localhost scripts]# source test.sh 
guo

一般當(dāng)linux系統(tǒng)啟動(dòng)的時(shí)候,系統(tǒng)將啟動(dòng)一個(gè)用戶shell,這個(gè)shell直接就可以使用shell命令或者聲明變量,比如,定義聲明變量,但這個(gè)在腳本中輸出為空,在局部變量需要添加$才能引用

[root@localhost scripts]# name=lili
[root@localhost scripts]# echo name
name
[root@localhost scripts]# echo $name
lili

**為什么要用export命令?
其實(shí)主要是我們定義一個(gè)變量時(shí)可以在子shell中被調(diào)用,而不需要重復(fù)去定義,但是當(dāng)shell執(zhí)行結(jié)束就會(huì)自動(dòng)退出,該環(huán)境變量無法繼續(xù)使用

變量在引號(hào)的使用
一般是特殊字符的時(shí)候需要使用'',如果是引用系統(tǒng)變量的話,必須使用""**

[root@tengxunyun ~]# name1=pingguo
[root@tengxunyun ~]# name2='li'
[root@tengxunyun ~]# name3="juzi"
[root@tengxunyun ~]# name4='^^^^'
[root@tengxunyun ~]# name5='&&& &&& $SHELL'
[root@tengxunyun ~]# name6="kkk #### $SHELL"

[root@tengxunyun ~]# echo $name1
pingguo
[root@tengxunyun ~]# echo $name2
li
[root@tengxunyun ~]# echo $name3
juzi
[root@tengxunyun ~]# echo $name4
^^^^
[root@tengxunyun ~]# echo $name5
&&& &&& $SHELL
[root@tengxunyun ~]# echo $name6
kkk #### /bin/bash

變量使用反引號(hào)賦值
如果是變量的話,一定要加$不然它以為是普通文件,帶_劃線的變量需要將前面變量{}起來

[root@tengxunyun ~]# time=`date`
[root@tengxunyun ~]# echo time
time
[root@tengxunyun ~]# echo $time
Thu Feb 20 13:34:26 CST 2020

[root@tengxunyun ~]# file=`ll`
[root@tengxunyun ~]# echo $file
total 4 -rw-r--r-- 1 root root 26 Feb 20 12:07 test.sh

[root@tengxunyun ~]# echo ${time}_day
Thu Feb 20 13:34:26 CST 2020_day
[root@tengxunyun ~]# echo $time-day
Thu Feb 20 13:34:26 CST 2020-day

**編寫腳本的時(shí)候我們需要將注釋加到腳本的開頭,這樣的話,可以增加我們的腳本的規(guī)范

使用vimrc文件**

[root@zhaocheng ~]# cat .vimrc 
autocmd BufNewFile *.py,*.cc,*.sh,*.java exec ":call SetTitle()"

func SetTitle()
    if expand("%:e") == 'sh'
        call setline(1,"#!/bin/bash")
        call setline(2, "##############################################################")
        call setline(3, "# File Name: ".expand("%"))
        call setline(4, "# Version: V1.0")
        call setline(5, "# Author: clsn")
        call setline(6, "# Organization: http://blog.znix.top")
        call setline(7, "# Created Time : ".strftime("%F %T"))
        call setline(8, "# Description:")
        call setline(9, "##############################################################")
        call setline(10, "")
    endif
endfunc

位置變量
Linux系統(tǒng)shell腳本的用法

$0獲取當(dāng)前的shell腳本的文件名,$1也就是獲取的第二個(gè)參數(shù),$2是獲取的第二個(gè)參數(shù),${11}當(dāng)參數(shù)超過9以上就需要使用{}引起來

[root@zhaocheng ~]# cat test.sh 
#!/bin/bash
echo $0
echo "第一個(gè)參數(shù):"$1
echo "第二個(gè)參數(shù):"$2
echo "第11個(gè)參數(shù):"${11}

[root@zhaocheng ~]# bash test.sh 1 3 3 5 6 78  8 89  9  654 77
test.sh
第一個(gè)參數(shù):1
第二個(gè)參數(shù):3
第11個(gè)參數(shù):77

$#相當(dāng)于列出總共多少個(gè)參數(shù)

[root@zhaocheng ~]# cat test.sh 
#!/bin/bash
echo $0
echo "第一個(gè)參數(shù):"$1
echo "第二個(gè)參數(shù):"$2
echo "第11個(gè)參數(shù):"${11}
echo "列出有多少個(gè)參數(shù):"$#

[root@zhaocheng ~]# bash test.sh 66 99 00 9990
test.sh
第一個(gè)參數(shù):66
第二個(gè)參數(shù):99
第11個(gè)參數(shù):
列出有多少個(gè)參數(shù):4

*$相當(dāng)于列出所有的參數(shù)**

[root@zhaocheng ~]# cat test.sh 
#!/bin/bash

echo $0
echo "第一個(gè)參數(shù):"$1
echo "第二個(gè)參數(shù):"$2
echo "第11個(gè)參數(shù):"${11}
echo "列出有多少個(gè)參數(shù):"$#
echo "列出所有輸出的參數(shù):"$*

[root@zhaocheng ~]# bash test.sh 99 00 88 77 66 55 44 33
test.sh
第一個(gè)參數(shù):99
第二個(gè)參數(shù):00
第11個(gè)參數(shù):
列出有多少個(gè)參數(shù):8
列出所有輸出的參數(shù):99 00 88 77 66 55 44 33

*$和¥@對(duì)比**

[root@zhaocheng ~]# set -- "It's" a nice day today
[root@zhaocheng ~]# echo $1
It's
[root@zhaocheng ~]# echo $2
a
[root@zhaocheng ~]# echo $3
nice
[root@zhaocheng ~]# echo $4
day
[root@zhaocheng ~]# echo $5
today

[root@zhaocheng ~]# for i in $1;do echo $i;done
It's
[root@zhaocheng ~]# for i in $2;do echo $i;done
a
[root@zhaocheng ~]# for i in $*;do echo $i;done
It's
a
nice
day
today
[root@zhaocheng ~]# for i in $#;do echo $i;done
5
[root@zhaocheng ~]# for i in $@;do echo $i;done
It's
a
nice
day
today
[root@zhaocheng ~]# for i in "$@";do echo $i;done
It's
a
nice
day
today

進(jìn)程狀態(tài)變量
shell進(jìn)程特殊狀態(tài)變量

Linux系統(tǒng)shell腳本的用法

**定義變量方式
1、直接賦值
2、傳遞參數(shù)
3、交互式設(shè)置變量,使用read命令

read在命令行的使用**

[root@zhaocheng ~]# read
999
[root@zhaocheng ~]# echo $REPLY
999
[root@zhaocheng ~]# read kele

[root@zhaocheng ~]# read kele
niunai
[root@zhaocheng ~]# echo $kele
niunai
[root@zhaocheng ~]# echo $REPLY
999

在腳本中的使用

[root@zhaocheng ~]# cat echo.sh 
#!/bin/bash
read -p "請(qǐng)輸入:" i
echo $i
[root@zhaocheng ~]# bash echo.sh 
請(qǐng)輸入:chengzhi
chengzhi

賦值的使用,CHA定義變量ls,這個(gè)是我們的shell命令就需要使用反引號(hào)引用起來,一般比較長(zhǎng)的目錄可以直接寫成變量的形式,在shell腳本中直接引用,這樣看起來比較簡(jiǎn)潔,這里是找出這個(gè)文件下以.yaml結(jié)尾的文件并統(tǒng)計(jì)大小和倒著排序

[root@zhaocheng ~]# cat fuzhi.sh 
#!/bin/bash

CHA=`ls`
DIR=/opt/k8s/ansible

echo $CHA
find $DIR -name "*.yaml" |xargs du -sh |sort -nr
[root@zhaocheng ~]# bash fuzhi.sh 
canshu.sh echo.sh fuzhi.sh tianqi.sh yum.sh
8.0K    /opt/k8s/ansible/ansible-k8s/ansible-install-k8s/roles/addons/files/kubernetes-dashboard.yaml
8.0K    /opt/k8s/ansible/ansible-k8s/ansible-install-k8s/roles/addons/files/kube-flannel.yaml
8.0K    /opt/k8s/ansible/ansible-k8s/ansible-install-k8s/roles/addons/files/ingress-controller.yaml
8.0K    /opt/k8s/ansible/ansible-k8s/ansible-install-k8s/roles/addons/files/coredns.yaml
4.0K    /opt/k8s/ansible/ansible-k8s/ansible-install-k8s/roles/master/files/kubelet-bootstrap-rbac.yaml
4.0K    /opt/k8s/ansible/ansible-k8s/ansible-install-k8s/roles/master/files/apiserver-to-kubelet-rbac.yaml

交互式設(shè)置變量read
常用參數(shù)

-p:給出提示符。默認(rèn)不支持"\n"換行
-s:靜默模式。輸入的內(nèi)容不會(huì)回顯在屏幕上
-t:給出超時(shí)時(shí)間,在達(dá)到超時(shí)時(shí)間時(shí),read退出并返回錯(cuò)誤
-n:限制讀取N個(gè)字符就自動(dòng)結(jié)束讀取,如果沒有讀滿N個(gè)字符就按下回車或遇到換行符,則也會(huì)結(jié)束讀取
-N:嚴(yán)格要求讀滿N個(gè)字符才自動(dòng)結(jié)束讀取,即使中途按下了回車或遇到了換行符也不結(jié)束。其中換行符或回車算一個(gè)字符
-a:將分裂后的字段依次存儲(chǔ)到指定的數(shù)組中,存儲(chǔ)的起始位置從數(shù)組的index=0開始
-p:給出提示符

read的基本用法

[root@zhaocheng ~]# cat read.sh 
#!/bin/bash
read -p  "請(qǐng)輸入你的名字:" lakey
read -s -p  "請(qǐng)輸入你的性別:" girl
read -s -p  "請(qǐng)輸入你有沒有對(duì)象:" ggg
echo
echo -e "\033[35m 你的名字是:$lakey \033[0m"
echo -e "\033[35m 你的性別是:$girl \033[0m"
echo -e "\033[35m 不,你不可能有對(duì)象:$ggg \033[0m"

shell中expr的用法
判斷輸入是否為整數(shù),非整數(shù)返回值為2
計(jì)算變量的長(zhǎng)度
[root@zhaocheng ~]# expr 1+1
1+1
[root@zhaocheng ~]# expr 1 + 1
2
[root@zhaocheng ~]# expr 1 1
expr: syntax error
[root@zhaocheng ~]# expr 1 * 1
1
[root@zhaocheng ~]# expr 1 \
3
3

非整數(shù)返回值為2示例
[root@zhaocheng ~]# expr -1 + 1
0
[root@zhaocheng ~]# echo $?
1
[root@zhaocheng ~]# echo a + 1
a + 1
[root@zhaocheng ~]# expr a + 1
expr: non-integer argument
[root@zhaocheng ~]# echo $?
2

$[ ]運(yùn)算符
[root@zhaocheng ~]# echo $[1+2]
3
[root@zhaocheng ~]# echo $[122]
122
[root@zhaocheng ~]# echo $[1-2]
-1
[root@zhaocheng ~]# echo $[1*2]
2
[root@zhaocheng ~]# echo $[1/2]
0

shell中的文件判斷
常用文件測(cè)試操作符
Linux系統(tǒng)shell腳本的用法

判斷這個(gè)文件有沒有存在,存在的話輸出0也就為真,為1也就為假

[root@zhaocheng ~]# [ -f /etc/hosts ]
[root@zhaocheng ~]# echo $?
0
[root@zhaocheng ~]# [ -f /etc/hosts2 ]
[root@zhaocheng ~]# echo $?
1

判斷文件是否存在,返回方式
可以使用顏色進(jìn)行輸出
Linux系統(tǒng)shell腳本的用法

在腳本中使用判斷語法目錄

[root@zhaocheng ~]# cat panduan.sh 
#!/bin/bash
DIR=/opt/k8s1
COLOR="\033[33m 目錄存在 \033[0m "

[ -d $DIR ] && echo -e $COLOR || echo "目錄不存在"
[root@zhaocheng ~]# bash panduan.sh 
目錄不存在

字符串判斷
字符串操作符
Linux系統(tǒng)shell腳本的用法

-z 判斷字符串長(zhǎng)度
-n 判讀字符串長(zhǎng)度

[root@zhaocheng ~]# cat panduanzifu.sh 
#!/bin/bash
ZIFU=33 

[ -z $ZIFU ] && echo "輸出為空" || echo "輸出有內(nèi)容"
[root@zhaocheng ~]# bash panduanzifu.sh 
輸出有內(nèi)容

[root@zhaocheng ~]# cat panduanzifu.sh 
#!/bin/bash
ZIFU=

[ -z $ZIFU ] && echo "輸出為空" || echo "輸出有內(nèi)容"
[root@zhaocheng ~]# bash panduanzifu.sh 
輸出為空
[root@zhaocheng ~]# cat panduanzifu.sh 
#!/bin/bash
ZIFU=

[ -n $ZIFU ] && echo "輸出為空" || echo "輸出有內(nèi)容"
[root@zhaocheng ~]# bash panduanzifu.sh 

輸出為空

整數(shù)判斷
整數(shù)二元比較操作符
Linux系統(tǒng)shell腳本的用法

判斷兩數(shù)是否相等,0為真判斷成立,1為假

[root@zhaocheng ~]# [ 1 -eq 0 ]
[root@zhaocheng ~]# echo $?
1
[root@zhaocheng ~]# [ 1 -eq 1 ]
[root@zhaocheng ~]# echo $?
0
[root@zhaocheng ~]# [ 9 -gt 6 ] && echo "正確" || echo "錯(cuò)誤"

正確

邏輯符號(hào)
常用邏輯符號(hào)
Linux系統(tǒng)shell腳本的用法

邏輯操作符與整數(shù)判斷配合

45不等于40 90等于90,判讀是對(duì)的就成立
[root@zhaocheng ~]# [ 45 -ne 40 -a 90 -eq 90  ] && echo 對(duì) || echo 不對(duì)
對(duì)
下面這個(gè)只要有一個(gè)不對(duì),這個(gè)就不成立
[root@zhaocheng ~]# [ 45 -ne 40 -a 90 -eq 98 ] && echo 對(duì) || echo 不對(duì)
不對(duì)

-o 至少有一個(gè)是成立的就返回為真

[root@zhaocheng ~]# [ 45 -ne 40 -o 90 -eq 98 ] && echo 對(duì) || echo 不對(duì)
對(duì)

!12,特殊用法,直接打開第12條命令

if條件語句
單分支語句

[root@zhaocheng ~]# cat dan.sh 
#!/bin/bash
DIR=/etc/hosts

if [ -f $DIR ]
then
  echo "文件存在"
fi
[root@zhaocheng ~]# bash dan.sh 
文件存在

多分支語句

[root@zhaocheng ~]# cat duo.sh 
#!/bin/bash
DIR=/etc/keepalived.conf

if [ -f $DIR ]
then
  echo "存在"
else
  echo "不存在"
fi
[root@zhaocheng ~]# bash duo.sh 
存在
[root@zhaocheng ~]# cat bijiao.sh 
#!/bin/bash
A=19
B=8

if [ $A -gt $B ]
then
  echo "$A > $B"
else
  echo "$A < $B"
fi
[root@zhaocheng ~]# bash bijiao.sh 
19 > 8

[root@zhaocheng ~]# cat bijiao.sh 
#!/bin/bash
A=19
B=89

if [ $A -gt $B ]
then
  echo "$A > $B"
else
  echo "$A < $B"
fi
[root@zhaocheng ~]# bash bijiao.sh 
19 < 89

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI