Shell編程之循環(huán)語(yǔ)句示例詳解
一、使用 for 循環(huán)語(yǔ)句
1. for 語(yǔ)句的結(jié)構(gòu)
- 使用 for 循環(huán)語(yǔ)句時(shí),需要指定一個(gè)變量及可能的取值列表,針對(duì)每一個(gè)不同的取值重復(fù)執(zhí)行相同的命令序列,直到變量值用完退出循環(huán)。
- for 循環(huán)語(yǔ)句的語(yǔ)法結(jié)構(gòu)如下
for 變量名 in 取值列表 do 命令序列 done
上述語(yǔ)句結(jié)構(gòu)中,操作對(duì)象為用戶(hù)指定名稱(chēng)的變量,并通過(guò) in 關(guān)鍵字為該變量預(yù)先設(shè)置了一個(gè)取值列表,多個(gè)取值之間以空格進(jìn)行分隔。位于 do 和 done 之間的命令序列稱(chēng)為“循環(huán)體”,其中的執(zhí)行語(yǔ)句需要引用變量以完成相應(yīng)的任務(wù)。
2. for 語(yǔ)句的執(zhí)行流程
- 首先將列表中的第1個(gè)取值賦給變量,并執(zhí)行 do···done 循環(huán)體中的命令序列
- 然后將列表中的第2個(gè)取值賦給變量,并執(zhí)行循環(huán)體中的命令序列……
- 以此類(lèi)推,直到列表中的所有取值用完,最后將跳至 done 語(yǔ)句,表示結(jié)束循環(huán)
3. for 語(yǔ)句應(yīng)用示例
根據(jù)姓名列表批量添加用戶(hù),操作如下
[root@localhost /home]#vim /opt/user.txt #用戶(hù)列表文件
wangwu
zhangsan
lisi
[root@localhost /home]#vim fo2.sh #批量添加或刪除用戶(hù)腳本
#!/bin/bash
ULIST=$(cat /opt/user.txt)
for UNAME in $ULIST
do
useradd $UNAME
# userdel -r $UNAME &>/dev/null
echo "123456" |passwd --stdin $UNAME &>/dev/null
echo "創(chuàng)建用戶(hù)成功"
# echo "刪除用戶(hù)中...";sleep 2
# echo "刪除成功"
done
wq保存并退出
#如果想要批量刪除用戶(hù)就可以把上面注釋去掉,并把創(chuàng)建用戶(hù)的命令給注釋掉
[root@localhost /home]#. fo2.sh #測(cè)試并確認(rèn)執(zhí)行的結(jié)果
創(chuàng)建用戶(hù)成功
創(chuàng)建用戶(hù)成功
創(chuàng)建用戶(hù)成功
[root@localhost /home]#tail -3 /etc/passwd
wangwu:x:1001:1001::/home/wangwu:/bin/bash
zhangsan:x:1002:1002::/home/zhangsan:/bin/bash
lisi:x:1003:1003::/home/lisi:/bin/bash根據(jù) IP 地址列表檢查主機(jī)狀態(tài)
[root@localhost /home]#vim /opt/ipadds.txt #IP地址列表文件
192.168.8.1
192.168.8.2
192.168.8.3
[root@localhost /home]#vim fo3.sh #循環(huán)檢查各主機(jī)的腳本
#!/bin/bash
HLIST=$(cat /opt/ipadds.txt)
for IP in $HLIST
do
ping -c 3 -i 0.2 -W 3 $IP &>/dev/null #-c是發(fā)送ping包的數(shù)量為3
if [ $? -eq 0 ] #-i是收發(fā)信息的間隔時(shí)間為0.2s
then #-W是超時(shí)時(shí)間為3s
echo "HOST $IP is up"
else
echo "HOST $IP is down"
fi
done
[root@localhost /home]#sh fo3.sh #使用sh命令就不用賦予權(quán)限才能運(yùn)行
HOST 192.168.8.1 is up
HOST 192.168.8.2 is up
HOST 192.168.8.3 is down密碼輸入正確和錯(cuò)誤提示
[root@localhost /home]#vim fo4.sh
#!/bin/bash
init=123456
for i in {1..3}
do
read -p "請(qǐng)輸入用戶(hù)密碼:" passwd
if [ $passwd == $init ]
then
echo "密碼正確"
exit
fi
done
echo "密碼錯(cuò)誤"
[root@localhost /home]#sh fo4.sh
請(qǐng)輸入用戶(hù)密碼:1
請(qǐng)輸入用戶(hù)密碼:1
請(qǐng)輸入用戶(hù)密碼:1
密碼錯(cuò)誤 #密碼輸入錯(cuò)誤三次直接退出交互界面
[root@localhost /home]#sh fo4.sh
請(qǐng)輸入用戶(hù)密碼:123456
密碼正確 #密碼輸入成功提示密碼輸入正確二、while 循環(huán)語(yǔ)句
for 循環(huán)語(yǔ)句非常適合于列表對(duì)象無(wú)規(guī)律,且列表來(lái)源已固定(如某個(gè)列表文件)的場(chǎng)合。而對(duì)于要求控制循環(huán)次數(shù)、操作對(duì)象按數(shù)字順序編號(hào)、按特定條件執(zhí)行重復(fù)操作等情況,則更適合使用 while 語(yǔ)句。
1.while 語(yǔ)句的結(jié)構(gòu)
使用 while 循環(huán)語(yǔ)句時(shí),可以根據(jù)特定的條件反復(fù)執(zhí)行一個(gè)命令序列,直到該條件不再滿(mǎn)足時(shí)為止。但是在腳本應(yīng)用中,應(yīng)該避免出現(xiàn)死循環(huán)的情況,否則后邊的命令操作將無(wú)法執(zhí)行。 循環(huán)體內(nèi)的命令序列中應(yīng)包括修改測(cè)試條件的語(yǔ)句,以便在適當(dāng)?shù)臅r(shí)候使測(cè)試條件不再成立,從而結(jié)束循環(huán)。 while循環(huán)語(yǔ)句的語(yǔ)法結(jié)構(gòu)如下所示:
2.while 語(yǔ)句的執(zhí)行流程
首先判斷 while 后的條件測(cè)試操作結(jié)果,如果條件成立,則執(zhí)行 do···done 循環(huán)體中的命令序列返回 while 后再次判斷條件測(cè)試結(jié)果,如果條件仍然成立,則繼續(xù)執(zhí)行循環(huán)體再次返回到 while 后,判斷條件測(cè)試結(jié)果…如此循環(huán)直到 while 后的條件測(cè)試結(jié)果不再成立為止,最后跳轉(zhuǎn)到 done 語(yǔ)句,表示結(jié)束循環(huán)
[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來(lái)直接上傳(img-kanpyiRh-1644830523881)(C:\Users\xiaozhu\AppData\Roaming\Typora\typora-user-images\1644829317814.png)]
3. while 語(yǔ)句應(yīng)用示例
① 批量添加規(guī)律編號(hào)的用戶(hù)
[root@localhost /home]#vim useradd.sh #批量添加用戶(hù)腳本
#!/bin/bash
PREFIX="gl"
i=1
while [ $i -le 20 ]
do
useradd ${PREFIX}$i
echo "123456"|passwd --stdin ${PREFIX}$i &>/dev/null
let i++
done
[root@localhost /home]#sh useradd.sh
[root@localhost /home]#grep "gl" /etc/passwd |tail -3
gl18:x:1021:1021::/home/gl18:/bin/bash
gl19:x:1022:1022::/home/gl19:/bin/bash
gl20:x:1023:1023::/home/gl20:/bin/bash上述腳本代碼中,使用變量 i 來(lái)控制用戶(hù)名稱(chēng)的編號(hào),初始賦值為1,并且當(dāng)取值大于20時(shí)終止循環(huán)。在循環(huán)中,通過(guò)語(yǔ)句 “let i++”(等同于i=‘expr $i+1’)來(lái)使變量i的值增加1,因此當(dāng)執(zhí)行第一次循環(huán)后i的值將變成2,執(zhí)行第2次循環(huán)后i的值將變成3…以此類(lèi)推。
如果想要?jiǎng)h除添加的用戶(hù),只需要把 while循環(huán)中添加用戶(hù)的命令序列改為刪除用戶(hù)的操作即可,操作如下:
[root@localhost /home]#vim useradd.sh
#!/bin/bash
PREFIX="gl"
i=1
while [ $i -le 20 ]
do
userdel -r ${PREFIX}$i
# echo "123456"|passwd --stdin ${PREFIX}$i &>/dev/null
let i++
done
[root@localhost /home]#sh useradd.sh
[root@localhost /home]#id gl20 #確認(rèn)用戶(hù)是否刪除成功
id: gl20: no such user② 猜數(shù)字大小
[root@localhost /home]#vim w4.sh
#!/bin/bash
NUM=8
while true
do
read -p "請(qǐng)輸入數(shù)字:" sz
if [ $sz -eq $NUM ];then
echo "你猜對(duì)了!"
break
elif [ $sz -gt $NUM ];then
echo "你猜大了"
elif [ $sz -lt $NUM ];then
echo "你猜小了"
fi
done
[root@localhost /home]#sh w4.sh
請(qǐng)輸入數(shù)字:2
你猜小了
請(qǐng)輸入數(shù)字:4
你猜小了
請(qǐng)輸入數(shù)字:6
你猜小了
請(qǐng)輸入數(shù)字:8
你猜對(duì)了!③ 猜價(jià)格游戲
[root@localhost /home]#vim w5.sh
#!/bin/bash
PRICE=$(expr $RANDOM % 1000)
a=0
echo "商品實(shí)際價(jià)格范圍為0~999,猜猜價(jià)格多少?"
while true
do
read -p "請(qǐng)輸入你猜測(cè)的價(jià)格:" INT
let a++
if [ $INT -eq $PRICE ];then
echo "恭喜你猜對(duì)了,實(shí)際價(jià)格是$PRICE"
echo "你總共猜了 $a次"
break
elif [ $INT -gt $PRICE ];then
echo "你猜高了"
else
echo "你猜低了"
fi
done
[root@localhost /home]#sh w5.sh
商品實(shí)際價(jià)格范圍為0~999,猜猜價(jià)格多少?
請(qǐng)輸入你猜測(cè)的價(jià)格:188
你猜低了
請(qǐng)輸入你猜測(cè)的價(jià)格:288
你猜低了
...... 省略
你猜高了
請(qǐng)輸入你猜測(cè)的價(jià)格:920
恭喜你猜對(duì)了,實(shí)際價(jià)格是920
你總共猜了 12次三、Shell 函數(shù)
1.概述
在編寫(xiě)shelI腳本時(shí),你經(jīng)常會(huì)發(fā)現(xiàn)在多個(gè)地方使用了同一段代碼。如果只是一小段代碼,一般也無(wú)關(guān)緊要。但是在shell腳本中多次重寫(xiě)大塊代碼段就太累人了。為了解決這個(gè)問(wèn)題,我們可以將 shell 腳本代碼放進(jìn)函數(shù)中封裝起來(lái),這樣就能在腳本中的任何地方多次重復(fù)使用它了。
2.函數(shù)的基本格式
[function] 函數(shù)名(){
命令序列
[return x] #return x 的作用是命令序列執(zhí)行完后返回給系統(tǒng)一個(gè)值,可省略
}
或者
#也可以省略掉[function],它表示該函數(shù)的功能
函數(shù)名() { #函數(shù)名后面()是沒(méi)有內(nèi)容的
命令序列 #我們執(zhí)行的命令內(nèi)容放在{}里面
}- 函數(shù)一結(jié)束就取返回值,退出的狀態(tài)碼必須是0~255
- 由于退出狀態(tài)碼必須小于256,函數(shù)的結(jié)果必須生成一個(gè)小于256的整數(shù)值,任何大于256的值都會(huì)產(chǎn)生一個(gè)錯(cuò)誤值。
3. 函數(shù)應(yīng)用示例
定義一個(gè)輸入兩個(gè)數(shù)求和的腳本
[root@localhost /home]#vim summ.sh
#!/bin/bash
sum(){
read -p "請(qǐng)輸入第一個(gè)數(shù):" NUM1
read -p "請(qǐng)輸入第二個(gè)數(shù):" NUM2
echo "你輸入的二個(gè)數(shù)為:$NUM1 和 $NUM2."
SUM=$[$NUM1 + $NUM2]
echo "兩個(gè)數(shù)和為:$SUM"
}
sum
[root@localhost /home]#sh summ.sh
請(qǐng)輸入第一個(gè)數(shù):8
請(qǐng)輸入第二個(gè)數(shù):9
你輸入的二個(gè)數(shù)為:8 和 9.
兩個(gè)數(shù)和為:17返回值的范圍
[root@localhost /home]#vim retun.sh
#!/bin/bash
function test1 {
read -p "請(qǐng)輸入數(shù)字:" num
return $[num*2]
}
test1
echo $?
[root@localhost /home]#sh retun.sh
請(qǐng)輸入數(shù)字:3
6
[root@localhost /home]#sh retun.sh
請(qǐng)輸入數(shù)字:127
254
[root@localhost /home]#sh retun.sh
請(qǐng)輸入數(shù)字:128
0函數(shù)的階乘
[root@localhost /home]#vim cc.sh
#!/bin/bash
fa () {
if [ $1 -eq 1 ]
then
echo 1
else
local tp=$[ $1 - 1 ]
local res=$(fa $tp)
echo $[ $1 * $res ]
fi
}
read -p "請(qǐng)輸入:" num
res=$(fa $num)
echo $res
[root@localhost /home]#sh cc.sh #5*4*3*2*1=120
請(qǐng)輸入:5
120
[root@localhost /home]#sh cc.sh #3*2*1=6
請(qǐng)輸入:3
6四、數(shù)組
1. 定義數(shù)組
可以在單行中使用數(shù)值列表來(lái)定義一個(gè)數(shù)組
array_var=(test1 test2 test3 test4) #這些值將會(huì)存儲(chǔ)在以0為起始索引的連續(xù)位置上 或者 #將數(shù)組定義為一組“索引—值” array_var=[0]="test1" array_var=[1]="test2" array_var=[2]="test3" array_var=[3]="test4" array_var=[4]="test5" array_var=[5]="test6"
精確的給每一個(gè)下標(biāo)索引定義一個(gè)值加入數(shù)組,索引數(shù)字可以不連續(xù)
num=([0]=55 [1]=66 [2]=77 [4]=88) 數(shù)組名=([0]=value [1]=value [2]=value. . .)
先把要加入數(shù)組的元素全部先賦值給一個(gè)變量,然后引用這個(gè)變量加入到數(shù)組
list=“11 12 13 14”
num=($list)
2. 獲取數(shù)組長(zhǎng)度
打印出特定索引的數(shù)組元素內(nèi)容
#echo ${array_var [0]}
test1
index=5
#echo ${array_var[$index]}
test6以列表形式打印出數(shù)組中的所有值
#echo ${array_var[*]}
test1 test2 test3 test4 test5 test6
或者
#echo ${array_var[@]}
test1 test2 test3 test4 test5 test6打印數(shù)組長(zhǎng)度(即數(shù)組中元素的個(gè)數(shù))
#echo ${#array_var[*]}6數(shù)組元素的遍歷
[root@localhost ~]#arr=(1 2 3 4 5 6)
[root@localhost ~]#for i in ${arr[*]}
> do
> echo $i
> done
1
2
3
4
5
63.元素切片
[root@localhost ~]#arr=(1 2 3 4 5 6 7 8 9)
[root@localhost ~]#echo ${arr[*]}
1 2 3 4 5 6 7 8 9
[root@localhost ~]#echo ${arr[*]:2:3} #提取出第二個(gè)數(shù)后面的三個(gè)值
3 4 5
[root@localhost ~]#echo ${arr[*]:2:5}
3 4 5 6 7
[root@localhost ~]#echo ${arr[*]:2:2}
3 4
[root@localhost ~]#echo ${arr[*]:0:6}
1 2 3 4 5 64.元素替換
[root@localhost ~]#arr=(1 2 3 4 5 6 7 8 9)
[root@localhost ~]#echo ${arr[*]}
1 2 3 4 5 6 7 8 9
[root@localhost ~]#echo ${arr[*]/3/88} #3指的是查找數(shù)主里面的字符,88指的是需要替換的字符
1 2 88 4 5 6 7 8 9
[root@localhost ~]#echo ${arr[*]/5/66}
1 2 3 4 66 6 7 8 95.元素刪除
[root@localhost ~]#arrt=(1 2 33 4 566 6)
[root@localhost ~]#echo ${arrt[*]}
1 2 33 4 566 6
[root@localhost ~]#unset arrt[2] #刪除的時(shí)候是以下標(biāo)的形式來(lái)進(jìn)行刪除,下標(biāo)2對(duì)應(yīng)的字符為33
[root@localhost ~]#echo ${arrt[*]}
1 2 4 566 6
[root@localhost ~]#unset arrt[4] #下標(biāo)4對(duì)應(yīng)的字符為566
[root@localhost ~]#echo ${arrt[*]}
1 2 4 66.冒泡排序
概念: 指的是它會(huì)遍歷若干次要排序的數(shù)列,每次遍歷時(shí),它都會(huì)從前往后依次的比較相鄰兩個(gè)數(shù)的大?。蝗绻罢弑群笳叽?,則交換它們的位置。這樣,一次遍歷之后,最大的元素就在數(shù)列的末尾! 采用相同的方法再次遍歷時(shí),第二大的元素就被排列在最大元素之前。重復(fù)此操作,直到整個(gè)數(shù)列都有序?yàn)橹埂?案例
[root@localhost /home]#vim mp.sh
#!/bin/bash
array=(20 40 30 10 60 50)
echo "old_array:${array[*]}"
lt=${#array[*]}
#定義比較輪數(shù),比較輪數(shù)為數(shù)組長(zhǎng)度減1,從1開(kāi)始;
for ((i=1;i<$lt;i++))
do
#確定比較元素的位置,比較相鄰的兩個(gè)元素,較大的數(shù)往后放,小的數(shù)往前放,并且每
輪比較次數(shù)需要隨著輪數(shù)遞減
for ((j=0;j<$lt-i;j++))
do
#定義第一個(gè)元素的值
first=${array[$j]}
#定義第二個(gè)元素的值
k=$[$j+1]
second=${array[$k]}
#如果第一個(gè)元素比第二個(gè)元素大,就進(jìn)行互換
if [ $first -gt $second ]
then
#把第一個(gè)元素值存放到臨時(shí)變量中
tmp=$first
#把第二個(gè)元素值賦給第一個(gè)元素
array[$j]=$second
#把臨時(shí)變量(第一個(gè)元素原值)賦給第二個(gè)元素
array[$k]=$tmp
fi
done
done
echo "new_array:${array[*]}"五、Shell 腳本調(diào)試
在Shell 腳本開(kāi)發(fā)中,經(jīng)常碰到一些規(guī)范方面的問(wèn)題,例如忘了便用引號(hào)或在 if 語(yǔ)句末尾處忘記加 fi 結(jié)束。 要注意把復(fù)雜的腳本簡(jiǎn)單化,要思路清晰,并且分段實(shí)現(xiàn)。當(dāng)執(zhí)行腳本時(shí)出現(xiàn)腳本錯(cuò)誤后,不要只看那些提示的錯(cuò)誤行,而是要觀察整個(gè)相關(guān)的代碼段。 為避免編寫(xiě)的腳本出錯(cuò),除了在編寫(xiě)腳本時(shí)注意書(shū)寫(xiě)規(guī)范,排除語(yǔ)法錯(cuò)誤,更重要的是利用調(diào)試腳本工具來(lái)調(diào)試腳本。
1.echo 命令
echo命令是最有用的調(diào)試腳本工具之一,一般在可能出現(xiàn)問(wèn)題的腳本中加入 echo 命令,采用的是分段排查的方式。
2.bash 命令
除了echo 命令之外,bash Shell 也有相應(yīng)參數(shù)可以調(diào)試腳本。
使用 bash 命令參數(shù)調(diào)試,命令的語(yǔ)法如下:
sh [-nvx] 腳本名
常用的參數(shù)如下所示
① -n:不會(huì)執(zhí)行該腳本,僅查詢(xún)腳本語(yǔ)法是否有問(wèn)題,如果沒(méi)有語(yǔ)法問(wèn)題就不顯示任何內(nèi)容,如果有問(wèn)題會(huì)提示報(bào)錯(cuò)。
② -V:在執(zhí)行腳本時(shí),先將腳本的內(nèi)容輸出到屏幕上然后執(zhí)行腳本,如果有錯(cuò)誤,也會(huì)給出錯(cuò)誤提示。
③ -x:將執(zhí)行的腳本內(nèi)容輸出到屏幕上,這是個(gè)對(duì)調(diào)試很有用的參數(shù)。
3.set 命令
當(dāng)腳本較長(zhǎng)時(shí),可以使用 set 命令指定調(diào)試一段腳本
常用參數(shù)如下:
set -x #開(kāi)啟調(diào)試模式 set +x #關(guān)閉調(diào)試模式
示例
[root@localhost /home]#cat 1.sh #!/bin/bash set -x for ((i=1;i<=5;i++)) do echo $i done #開(kāi)啟調(diào)試模式以后會(huì)看到每段的反饋結(jié)果 [root@localhost /home]#sh 1.sh + (( i=1 )) + (( i<=5 )) + echo 1 1 + (( i++ )) + (( i<=5 )) + echo 2 2 + (( i++ )) + (( i<=5 )) + echo 3 3 + (( i++ )) + (( i<=5 )) + echo 4 4 + (( i++ )) + (( i<=5 )) + echo 5 5 + (( i++ )) + (( i<=5 ))
總結(jié)
提示。
③ -x:將執(zhí)行的腳本內(nèi)容輸出到屏幕上,這是個(gè)對(duì)調(diào)試很有用的參數(shù)。
3.set 命令
當(dāng)腳本較長(zhǎng)時(shí),可以使用 set 命令指定調(diào)試一段腳本
常用參數(shù)如下:
set -x #開(kāi)啟調(diào)試模式 set +x #關(guān)閉調(diào)試模式
示例
[root@localhost /home]#cat 1.sh #!/bin/bash set -x for ((i=1;i<=5;i++)) do echo $i done #開(kāi)啟調(diào)試模式以后會(huì)看到每段的反饋結(jié)果 [root@localhost /home]#sh 1.sh + (( i=1 )) + (( i<=5 )) + echo 1 1 + (( i++ )) + (( i<=5 )) + echo 2 2 + (( i++ )) + (( i<=5 )) + echo 3 3 + (( i++ )) + (( i<=5 )) + echo 4 4 + (( i++ )) + (( i<=5 )) + echo 5 5 + (( i++ )) + (( i<=5 ))
總結(jié)
Shell 腳本是千變?nèi)f化的,正所謂條條大路通羅馬,shell 腳本中也是如此。一個(gè)腳本可以有無(wú)數(shù)種寫(xiě)法,但是思路都是相通的,只要有了思路腳本就自然會(huì)寫(xiě)的很順暢!
到此這篇關(guān)于Shell編程之循環(huán)語(yǔ)句的文章就介紹到這了,更多相關(guān)Shell循環(huán)語(yǔ)句內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- shell編程中for循環(huán)語(yǔ)句的實(shí)現(xiàn)過(guò)程及案例
- shell腳本實(shí)戰(zhàn)-while循環(huán)語(yǔ)句
- linux shell常用循環(huán)與判斷語(yǔ)句(for,while,until,if)使用方法
- Shell腳本的條件控制和循環(huán)語(yǔ)句
- shell腳本編程之循環(huán)語(yǔ)句
- shell腳本編程之循環(huán)語(yǔ)句學(xué)習(xí)筆記
- shell中的循環(huán)語(yǔ)句、判斷語(yǔ)句實(shí)例
- Shell腳本while、until循環(huán)語(yǔ)句簡(jiǎn)明教程
- Shell腳本for循環(huán)語(yǔ)句簡(jiǎn)明教程
相關(guān)文章
解析spark源碼yarn-cluster模式任務(wù)提交
這篇文章主要為大家解析了spark源碼中yarn-cluster模式任務(wù)提交方式,有需要的朋友可以借鑒參考下,希望可以有所幫助,祝大家多多進(jìn)步,早日升職加薪2021-09-09
Shell(())實(shí)現(xiàn)對(duì)整數(shù)進(jìn)行數(shù)學(xué)運(yùn)算
這篇文章主要介紹了Shell(())實(shí)現(xiàn)對(duì)整數(shù)進(jìn)行數(shù)學(xué)運(yùn)算,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03
win下調(diào)用putty執(zhí)行命令腳本分享
這篇文章主要介紹了win下調(diào)用putty執(zhí)行命令腳本,可以利用這個(gè)實(shí)現(xiàn)一些自動(dòng)化的工作,需要的朋友可以參考下2014-03-03

