国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

一篇文章教會你如何編寫一個簡單的Shell腳本

這篇具有很好參考價值的文章主要介紹了一篇文章教會你如何編寫一個簡單的Shell腳本。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

簡單Shell腳本編寫

Shell腳本概念

Shell 腳本是一種用于自動化執(zhí)行一系列命令和操作的腳本文件。它使用的是 Shell 解釋器(如 Bash、Korn Shell、Zsh 等)來解釋和執(zhí)行其中的命令。Shell 腳本通常用于編寫簡單的任務(wù)和工作流程,可以幫助我們進(jìn)行系統(tǒng)管理、批量處理、自動化部署等任務(wù)。

以.sh后綴名結(jié)尾的文件來表示該文件是一個Shell腳本。

Shell腳本就是將命令寫入文本中,文本可以被執(zhí)行。

1. 簡單腳本編寫

文件內(nèi)容如下:

一篇文章教會你如何編寫一個簡單的Shell腳本,linux,shell,腳本,網(wǎng)絡(luò)安全

編寫完腳本后,賦權(quán)文件的執(zhí)行權(quán)限

方式一

chmod +x 腳本文件

一篇文章教會你如何編寫一個簡單的Shell腳本,linux,shell,腳本,網(wǎng)絡(luò)安全

方式二

bash 腳本文件

一篇文章教會你如何編寫一個簡單的Shell腳本,linux,shell,腳本,網(wǎng)絡(luò)安全

2. Shell腳本參數(shù)

$0:表示當(dāng)前腳本的名稱。

$*:表示腳本的所有參數(shù)。

$#:表示腳本的參數(shù)的個數(shù)。

$n:表示腳本的第n個參數(shù),n=1,2,3…

$? :程序執(zhí)行完后的結(jié)果,返回值0表示執(zhí)行成功。

#!/bin/bash
echo "當(dāng)前腳本名稱$0"
echo "總共有$#個參數(shù),分別是$*。"
echo "第一個參數(shù)為$1,第三個參數(shù)為$3"

一篇文章教會你如何編寫一個簡單的Shell腳本,linux,shell,腳本,網(wǎng)絡(luò)安全

在執(zhí)行該Shell腳本文件的時候在后面添加三個參數(shù)分別是wuhu1,wuhu2,wuhu3。

執(zhí)行結(jié)果:

一篇文章教會你如何編寫一個簡單的Shell腳本,linux,shell,腳本,網(wǎng)絡(luò)安全

注意

  • 雙引號會解釋變量

  • 單引號會把變量當(dāng)成字符串表示

2.1 Shell腳本參數(shù)判斷

2.1.1 文件測試語句
  • -d:測試文件是否為目錄類型,是目錄返回0,不是目錄返回非0值。
  • -e:測試文件是否存在。
  • -f:判斷是否為一般文件。
  • -r:判斷當(dāng)前用戶對該文件是否有讀取權(quán)限。
  • -w:判斷當(dāng)前用戶對該文件是否有寫入權(quán)限。
  • -x:判斷當(dāng)前用戶對該文件是否有執(zhí)行權(quán)限。

判讀是否為目錄

[ -d /etc/passwd ]
echo $?				# $?返回上一次執(zhí)行命令的結(jié)果

說明:這里的[]中輸入的內(nèi)容前后需要加空格

一篇文章教會你如何編寫一個簡單的Shell腳本,linux,shell,腳本,網(wǎng)絡(luò)安全

返回值為1,表示/etc/passwd不是目錄。

判斷當(dāng)前目錄下的wuhu是否為目錄

一篇文章教會你如何編寫一個簡單的Shell腳本,linux,shell,腳本,網(wǎng)絡(luò)安全

判斷是否為文件

[ -f /etc/passwd ]
echo $?				# $?返回上一次執(zhí)行命令的結(jié)果

一篇文章教會你如何編寫一個簡單的Shell腳本,linux,shell,腳本,網(wǎng)絡(luò)安全

返回值為0,表示/etc/passwd是文件。

2.1.2 邏輯測試語句

邏輯運(yùn)算符:

  • &&
  • ||

問題:上面所輸入命令十分的繁瑣,是否可以使用一條命令來完成上面的操作?

注意:這里是不能使用管道符的,使用管道符發(fā)現(xiàn)兩次的輸出值是不一樣的。

一篇文章教會你如何編寫一個簡單的Shell腳本,linux,shell,腳本,網(wǎng)絡(luò)安全

可以使用**&&**符號

  • && 必須保證兩邊都為真,條件才會成立,只要有一個為假條件都不會成立。
  • 只有當(dāng)左側(cè)命令執(zhí)行成功時,右側(cè)的命令才會被執(zhí)行。
[ -f /etc/passwd ] && echo  "/etc/passwd是一個文件"
[ -d wuhu ] && echo  "wuhu是一個目錄"

一篇文章教會你如何編寫一個簡單的Shell腳本,linux,shell,腳本,網(wǎng)絡(luò)安全

[ $USER = root ] && echo  "該用戶是超級管理員用戶"

一篇文章教會你如何編寫一個簡單的Shell腳本,linux,shell,腳本,網(wǎng)絡(luò)安全

還可以使用**|| **符號

  • || 兩邊有一個為真就為真,兩邊都為真也為真,兩邊為假才為假。
  • 如果左側(cè)命令執(zhí)行成功(返回值為零),則右側(cè)的命令將不會被執(zhí)行。
[ $USER = root ] || echo  "該用戶是超級管理員用戶"		# 表示當(dāng)前用戶不是root輸出對應(yīng)的語句

[ ! $USER = root ] || echo  "該用戶是超級管理員用戶"	# 表示當(dāng)前用戶是root輸出對應(yīng)的語句

一篇文章教會你如何編寫一個簡單的Shell腳本,linux,shell,腳本,網(wǎng)絡(luò)安全

例如:要求普通用戶輸出user,管理員用戶輸出superuser

[ ! $USER = root ] && echo "user" || echo "superuser"

一篇文章教會你如何編寫一個簡單的Shell腳本,linux,shell,腳本,網(wǎng)絡(luò)安全

切換回普通用戶,執(zhí)行該命令

一篇文章教會你如何編寫一個簡單的Shell腳本,linux,shell,腳本,網(wǎng)絡(luò)安全

2.1.3 整數(shù)值測試語句

整數(shù)的比較運(yùn)輸符

  • -eq:是否等于
  • -ne:是否不等于
  • -gt:是否大于
  • -lt:是否小于
  • -le:是否等于或小于
  • -ge:是否等于或大于
[ 9 -eq 8 ]
echo $?

[ 9 -ne 8 ]
echo $?

一篇文章教會你如何編寫一個簡單的Shell腳本,linux,shell,腳本,網(wǎng)絡(luò)安全

free:查看內(nèi)存

一篇文章教會你如何編寫一個簡單的Shell腳本,linux,shell,腳本,網(wǎng)絡(luò)安全

現(xiàn)在需要輸出free中的Mem這一行

free -m | grep Mem | awk '{print $4}'

一篇文章教會你如何編寫一個簡單的Shell腳本,linux,shell,腳本,網(wǎng)絡(luò)安全

定義變量

Freemem=`free -m | grep Mem | awk '{print $4}'`
echo $Freemem			# 輸出變量

一篇文章教會你如何編寫一個簡單的Shell腳本,linux,shell,腳本,網(wǎng)絡(luò)安全

例如:如果這個值小于1024的時候,會輸出內(nèi)容不足的提示信息。

[ $Freemem -gt 1024 ] && echo "內(nèi)存不足"
[ $Freemem -lt 1024 ] && echo "內(nèi)存不足"

一篇文章教會你如何編寫一個簡單的Shell腳本,linux,shell,腳本,網(wǎng)絡(luò)安全

2.1.4 字符串比較語句

字符串比較:

  • =:比較字符串內(nèi)容是否相同。
  • !=:比較字符串內(nèi)容是否不同。
  • -z:判斷字符串內(nèi)容是否為空,如果為空返回0表示真,如果不為空返回1。
[ -z $String ]
echo $?			# 返回結(jié)果為0,因為沒有定義過這個變量

[ -z $USER ]
echo $?			# 返回結(jié)果為1,因為當(dāng)前用戶不為空

一篇文章教會你如何編寫一個簡單的Shell腳本,linux,shell,腳本,網(wǎng)絡(luò)安全

判斷當(dāng)前系統(tǒng)是否支持中文。

[ $LANG = zh_CN.UTF-8 ] && echo "支持中文" || echo "不支持中文"

一篇文章教會你如何編寫一個簡單的Shell腳本,linux,shell,腳本,網(wǎng)絡(luò)安全

3. Shell流程控制語句

流程控制語句

  • if
  • then
  • else
  • fi

3.1 if 條件測試語句

3.1.1 if…

基本格式如下:

if 條件測試語句		
then 
	命令序列
fi  結(jié)束if語句

例如:判斷home目錄下是否存在test目錄,如果不存在則創(chuàng)建一個。

#!/bin/bash
DIR="/home/test"
if [ ! -e $DIR ]
then
        mkdir -p $DIR
fi

一篇文章教會你如何編寫一個簡單的Shell腳本,linux,shell,腳本,網(wǎng)絡(luò)安全

執(zhí)行結(jié)果

一篇文章教會你如何編寫一個簡單的Shell腳本,linux,shell,腳本,網(wǎng)絡(luò)安全

3.1.2 if…else…

基本格式如下:

if 條件測試語句		
then 
	命令序列
else 
	命令序列
fi  結(jié)束if語句

例如:判斷給定的IP是否正常

#!/bin/bash
ping -c 3 -i 0.2 -W 3 $1 &>/dev/null
if [ $? -eq 0 ]
then
        echo "$1該IP是正常的"
else 
        echo "$1該IP無法ping通" 
fi 

說明:&>/dev/null在 Linux/Unix 系統(tǒng)中,“/dev/null” 是一個空設(shè)備文件,它可以用于丟棄不需要的輸出,相當(dāng)于一個黑洞。

一篇文章教會你如何編寫一個簡單的Shell腳本,linux,shell,腳本,網(wǎng)絡(luò)安全

執(zhí)行結(jié)果

一篇文章教會你如何編寫一個簡單的Shell腳本,linux,shell,腳本,網(wǎng)絡(luò)安全

然后就可以完善一下腳本內(nèi)容

#!/bin/bash
if [ -z $1 ]
then
        echo "作者:小薛"
        echo "該命令檢測服務(wù)器IP是否正常"
        echo "直接在命令后面加參數(shù)IP就可以執(zhí)行"
else
        ping -c 3 -i 0.2 -W 3 $1 &>/dev/null
        if [ $? -eq 0 ]
        then
                echo "$1該IP是正常的"
        else
                echo "$1該IP無法ping通" 
        fi
fi

說明

  • “-c 3” 選項表示發(fā)送 3 個 ICMP 請求消息,并等待每個請求的響應(yīng)。
  • “-i 0.2” 選項表示設(shè)置每個 ICMP 請求的時間間隔為 0.2 秒(即每 200 毫秒發(fā)送一個請求)。
  • “-W 3” 選項表示設(shè)置等待響應(yīng)的超時時間為 3 秒。

一篇文章教會你如何編寫一個簡單的Shell腳本,linux,shell,腳本,網(wǎng)絡(luò)安全

執(zhí)行效果

一篇文章教會你如何編寫一個簡單的Shell腳本,linux,shell,腳本,網(wǎng)絡(luò)安全

3.1.3 if…elif…else

基本格式如下:

if 條件測試語句1	
then 
	命令序列1
elif 條件測試語句2
then 
	命令序列2
else 
	命令序列3
fi  結(jié)束if語句

例如:判斷學(xué)員考試分?jǐn)?shù)如何

#!/bin/bash
read -p "請輸入分?jǐn)?shù)(1-100):" fenshu
if [ $fenshu -ge 85 ] && [ $fenshu -le 100 ];then
        echo "該學(xué)生成績?yōu)閮?yōu)秀"
elif [ $fenshu -ge 70 ] && [ $fenshu -le 84 ];then
        echo "該學(xué)生成績?yōu)楹细?
else
        echo "該學(xué)生成績?yōu)椴缓细?               
fi

說明:

  • “-p” 選項用于在用戶輸入之前顯示一個提示信息。
  • “read” 是一個 Bash 內(nèi)置命令,用于從標(biāo)準(zhǔn)輸入中讀取用戶輸入并將其賦值給一個變量。
  • “fenshu” 是用于存儲用戶輸入值的變量名。

一篇文章教會你如何編寫一個簡單的Shell腳本,linux,shell,腳本,網(wǎng)絡(luò)安全

執(zhí)行效果如下

一篇文章教會你如何編寫一個簡單的Shell腳本,linux,shell,腳本,網(wǎng)絡(luò)安全

4. Shell腳本循環(huán)

4.1 for循環(huán)

基本格式:

for 變量名 in 取值列表
do
	命令序列
done
4.1.1 批量添加用戶

創(chuàng)建一個用戶名的txt文件

一篇文章教會你如何編寫一個簡單的Shell腳本,linux,shell,腳本,網(wǎng)絡(luò)安全

編寫Shell腳本

#!/bin/bash
read -p "請輸入密碼:" PASSWORD
for USERNAME in `cat user.txt`
do      
        id $USERNAME &> /dev/null
        if [ $? -eq 0 ]
        then    
                echo "$USERNAME用戶已存在!"
        else    
                useradd $USERNAME &> /dev/null
                echo "$PASSWORD" | passwd --stdin $USERNAME &> /dev/null
                echo "$USERNAME用戶創(chuàng)建成功"
        fi      
done

說明

  • –stdin:選項告訴passwd命令從標(biāo)準(zhǔn)輸入(stdin)讀取密碼,而不是要求用戶手動輸入密碼。

一篇文章教會你如何編寫一個簡單的Shell腳本,linux,shell,腳本,網(wǎng)絡(luò)安全

執(zhí)行結(jié)果如下:

一篇文章教會你如何編寫一個簡單的Shell腳本,linux,shell,腳本,網(wǎng)絡(luò)安全

創(chuàng)建前

一篇文章教會你如何編寫一個簡單的Shell腳本,linux,shell,腳本,網(wǎng)絡(luò)安全

創(chuàng)建后一篇文章教會你如何編寫一個簡單的Shell腳本,linux,shell,腳本,網(wǎng)絡(luò)安全

4.1.2 批量刪除用戶

編寫Shell腳本

#!/bin/bash
for USERNAME in `cat user.txt`
do
        id $USERNAME &> /dev/null
        if [ $? -eq 0 ]
        then
                userdel -r $USERNAME &>/dev/null
                echo "$USERNAME用戶已刪除"
        else
                echo "$USERNAME用戶不存在!"
        fi
done

一篇文章教會你如何編寫一個簡單的Shell腳本,linux,shell,腳本,網(wǎng)絡(luò)安全

執(zhí)行結(jié)果

一篇文章教會你如何編寫一個簡單的Shell腳本,linux,shell,腳本,網(wǎng)絡(luò)安全

4.1.3 批量ping IP 地址

創(chuàng)建一個IP地址的txt文件

一篇文章教會你如何編寫一個簡單的Shell腳本,linux,shell,腳本,網(wǎng)絡(luò)安全

編寫Shell腳本

#!/bin/bash
HOSTLIST=$(cat /root/iplist.txt)
for IP in $HOSTLIST
do
        ping -c 3 -i 0.2 -W 3 $IP &>/dev/null
        if [ $? -eq 0 ]
        then    
                echo "$IP該IP是正常的"
        else    
                echo "$IP該IP無法ping通"
        fi      
done

說明

  • “$()” 是 Bash 中的命令替換語法,它表示將命令的輸出結(jié)果作為一個整體嵌入到命令行中。

一篇文章教會你如何編寫一個簡單的Shell腳本,linux,shell,腳本,網(wǎng)絡(luò)安全

執(zhí)行效果如下:

一篇文章教會你如何編寫一個簡單的Shell腳本,linux,shell,腳本,網(wǎng)絡(luò)安全

4.1.4 檢測同一局域網(wǎng),多臺主機(jī)存活情況

方式一

#!/bin/bash
read -p "請輸入網(wǎng)絡(luò)位:" NETWORK
for ((IP=1;IP<=100;IP++))
do
        ping -c 3 -i 0.2 -W 3 $NETWORK.$IP &> /dev/null
        if [ $? -eq 0 ]
        then
                echo "$NETWORK.$IP該IP可以ping通"

        else
                echo "$NETWORK.$IP該IP無法ping通!!!!!!!"
        fi
done

執(zhí)行結(jié)果:

一篇文章教會你如何編寫一個簡單的Shell腳本,linux,shell,腳本,網(wǎng)絡(luò)安全

方式二

#!/bin/bash
read -p "請輸入網(wǎng)絡(luò)位:" NETWORK
for IP in `seq 1 254`
do
        ping -c 3 -i 0.2 -W 3 $NETWORK.$IP &> /dev/null
        if [ $? -eq 0 ]
        then
                echo "$NETWORK.$IP該IP可以ping通"

        else
                echo "$NETWORK.$IP該IP無法ping通!!!!!!!"
        fi
done

說明:

  • “seq” 是一個用于生成序列的命令。
  • “1” 是序列的起始值。
  • “254” 是序列的結(jié)束值。

執(zhí)行結(jié)果:

一篇文章教會你如何編寫一個簡單的Shell腳本,linux,shell,腳本,網(wǎng)絡(luò)安全

4.2 while循環(huán)

基本格式如下:

while 條件
do
	命令序列
done

例如:猜測商品價格

編寫Shell腳本

#!/bin/bash
echo "該商品價格在0~1000之間,輸入價格來猜一猜"
TIMES=0
PRICE=$(expr $RANDOM % 1000 )
while true
do
        read -p "請輸入價格:" INT
        let TIMES++
        if [ $INT -eq $PRICE ]
        then    
                echo "恭喜您猜對了該商品的及格,價格為$INT"
                echo "您猜了$TIMES次"
                exit
        elif [ $INT -gt $PRICE ];then
                echo "您所輸入的價格高了"
        else
                echo "您所輸入的價格低了"
        fi      
done

說明

  • $RANDOM是linux中的內(nèi)置變量,可以隨機(jī)生成0-32767之間的整數(shù)數(shù)字。
  • “expr” 是一個用于執(zhí)行基本數(shù)學(xué)運(yùn)算或字符串操作的命令。

一篇文章教會你如何編寫一個簡單的Shell腳本,linux,shell,腳本,網(wǎng)絡(luò)安全

執(zhí)行結(jié)果

一篇文章教會你如何編寫一個簡單的Shell腳本,linux,shell,腳本,網(wǎng)絡(luò)安全

4.3 case條件測試語句

基本格式如下:

case 變量值 in 
模式1
	命令序列1
模式2 
	命令序列2
....
	默認(rèn)命令序列
esac

例如:判斷輸入的是字母,數(shù)字,還是特殊符號

編寫Shell腳本

#!/bin/bash
read -p "請輸入一個字符:" KEY
case "$KEY" in
        [a-z]|[A-Z])
                echo "這是字母"
                ;;
        [0-9])
                echo "這是數(shù)字"
                ;;
        *)
                echo "這是特殊符號"
esac

一篇文章教會你如何編寫一個簡單的Shell腳本,linux,shell,腳本,網(wǎng)絡(luò)安全

執(zhí)行效果如下:

一篇文章教會你如何編寫一個簡單的Shell腳本,linux,shell,腳本,網(wǎng)絡(luò)安全文章來源地址http://www.zghlxwxcb.cn/news/detail-692759.html

到了這里,關(guān)于一篇文章教會你如何編寫一個簡單的Shell腳本的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • docker從安裝到部署項目,一篇文章教會你

    docker從安裝到部署項目,一篇文章教會你

    首先看下 Docker 圖標(biāo): 一條小鯨魚上面有些集裝箱,比較形象的說明了 Docker 的特點(diǎn),以后見到這個圖標(biāo)等同見到了 Docker 1. Docker 是一個開源的應(yīng)用容器引擎,它基于 Go 語言開發(fā),并遵從 Apache2.0 開源協(xié)議 2. 使用 Docker 可以讓開發(fā)者封裝他們的應(yīng)用以及依賴包到一個可移植的

    2024年02月08日
    瀏覽(25)
  • C++初階之一篇文章教會你list(模擬實現(xiàn))

    C++初階之一篇文章教會你list(模擬實現(xiàn))

    成員類型表 這個表中列出了C++標(biāo)準(zhǔn)庫中l(wèi)ist容器的一些成員類型定義。這些類型定義是為了使list能夠與C++標(biāo)準(zhǔn)庫的其他組件協(xié)同工作,并提供一些通用的標(biāo)準(zhǔn)接口。每個成員類型的用處: value_type : 這個成員類型代表list容器中存儲的數(shù)據(jù)類型,即模板參數(shù)T的類型。 allocator_

    2024年02月12日
    瀏覽(25)
  • C++初階之一篇文章教會你list(理解和使用)

    C++初階之一篇文章教會你list(理解和使用)

    在C++標(biāo)準(zhǔn)庫中, std::list 是一個雙向鏈表容器,用于存儲一系列元素。與 std::vector 和 std::deque 等容器不同, std::list 使用鏈表的數(shù)據(jù)結(jié)構(gòu)來組織元素,因此在某些操作上具有獨(dú)特的優(yōu)勢和性能特點(diǎn)。以下是關(guān)于 std::list 的詳細(xì)介紹: 雙向鏈表結(jié)構(gòu): std::list 內(nèi)部使用雙向鏈表來

    2024年02月13日
    瀏覽(28)
  • Vue中的Pinia狀態(tài)管理工具 | 一篇文章教會你全部使用細(xì)節(jié)

    Vue中的Pinia狀態(tài)管理工具 | 一篇文章教會你全部使用細(xì)節(jié)

    Pinia(發(fā)音為/pi?nj?/,如英語中的“peenya”)是最接近pi?a(西班牙語中的菠蘿)的詞 ; Pinia開始于大概2019年,最初是 作為一個實驗為Vue重新設(shè)計狀態(tài)管理 ,讓它用起來適合組合式API(Composition API)。 從那時到現(xiàn)在,最初的設(shè)計原則依然是相同的,并且目前同時兼容Vue2、

    2024年02月11日
    瀏覽(23)
  • 數(shù)據(jù)結(jié)構(gòu)入門(C語言版)一篇文章教會你手撕八大排序

    數(shù)據(jù)結(jié)構(gòu)入門(C語言版)一篇文章教會你手撕八大排序

    排序 :所謂排序,就是使一串記錄,按照其中的某個或某些的大小,遞增或遞減的排列起來的操作。 穩(wěn)定性 :假定在待排序的記錄序列中,存在多個具有相同的的記錄,若經(jīng)過排序,這些記錄的相對次序保持不變,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而

    2024年02月01日
    瀏覽(22)
  • 怎樣在一臺電腦安裝多個版本的JDK并切換使用?一篇文章教會你所有細(xì)節(jié)

    怎樣在一臺電腦安裝多個版本的JDK并切換使用?一篇文章教會你所有細(xì)節(jié)

    目錄 1. 下載安裝JDK版本 2. 配置環(huán)境變量 2. 1 配置環(huán)境變量的步驟 2.2 需要注意的細(xì)節(jié)點(diǎn) 2.3 JDK8,11,17版本切換測試 a . JDK8 下載鏈接: Java Downloads | Oracle https://www.oracle.com/java/technologies/downloads/#java8-windows b.? 這里我先插一句,因為我們要安裝多個JDK版本,所以我們最好提前創(chuàng)

    2024年04月16日
    瀏覽(20)
  • Go For Web:一篇文章帶你用 Go 搭建一個最簡單的 Web 服務(wù)、了解 Golang 運(yùn)行 web 的原理

    Go For Web:一篇文章帶你用 Go 搭建一個最簡單的 Web 服務(wù)、了解 Golang 運(yùn)行 web 的原理

    本文作為解決如何通過 Golang 來編寫 Web 應(yīng)用這個問題的前瞻,對 Golang 中的 Web 基礎(chǔ)部分進(jìn)行一個簡單的介紹。目前 Go 擁有成熟的 Http 處理包,所以我們?nèi)ゾ帉懸粋€做任何事情的動態(tài) Web 程序應(yīng)該是很輕松的,接下來我們就去學(xué)習(xí)了解一些關(guān)于 Web 的相關(guān)基礎(chǔ),了解一些概念,

    2023年04月14日
    瀏覽(28)
  • (python實現(xiàn))一篇文章教會你k-means聚類算法(包括最優(yōu)聚類數(shù)目k的確定)

    (python實現(xiàn))一篇文章教會你k-means聚類算法(包括最優(yōu)聚類數(shù)目k的確定)

    Kmeans算法中,K值所決定的是在該聚類算法中,所要分配聚類的簇的多少。Kmeans算法對初始值是?較敏感的,對于同樣的k值,選取的點(diǎn)不同,會影響算法的聚類效果和迭代的次數(shù)。本文通過計算原始數(shù)據(jù)中的:手肘法、輪廓系數(shù)、CH值和DB值,四種指標(biāo)來衡量K-means的最佳聚類數(shù)

    2024年02月05日
    瀏覽(40)
  • 一篇文章告訴你JavaScript 如何實現(xiàn)繼承

    一篇文章告訴你JavaScript 如何實現(xiàn)繼承

    JavaScript 在編程語言界是個特殊種類,它和其他編程語言很不一樣,JavaScript 可以在運(yùn)行的時候動態(tài)地改變某個變量的類型。 比如你永遠(yuǎn)也沒法想到像isTimeout這樣一個變量可以存在多少種類型,除了布爾值true和false,它還可能是undefined、1和0、一個時間戳,甚至一個對象。 如

    2024年02月10日
    瀏覽(26)
  • 如何分析判斷一篇文章是不是chatgpt寫的

    判斷一篇文章是否由ChatGPT寫成并不是一件容易的事情,因為ChatGPT的文本生成能力已經(jīng)非常接近人類水平。然而,可以通過以下幾個方面來進(jìn)行初步分析和判斷: 內(nèi)容的連貫性:ChatGPT由大量的訓(xùn)練數(shù)據(jù)驅(qū)動,它在生成文本時可能會受限于數(shù)據(jù)中存在的特定模式和常見的表達(dá)方

    2024年02月16日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包