1 寫一個時鐘
#!/bin/bash
year=2022
month=12
day=15
hour=11
min=22
sec=15
flag=1
for((;;)){((sec++))
#((day++))
sleep 1
if [ $sec -eq 60 ]
then
sec=0
((min++))
fi
if [ $min -eq 60 ]
then
min=0
((hour++))
fi
if [ $hour -eq 24 ]
then
hour=0
((day++))
fi
if (( year%4==0 && year%100!=0 )) || (( year%400==0 ))
then
flag=1 #是閏年
else
flag=0 #不是閏年
fi
if [ $month -eq 1 -o $month -eq 3 -o $month -eq 5 -o $month -eq 7 -o $month -eq 8 -o $month -eq 10 -o $month -eq 12 ]
then #對于1、3、5、7、8、10、12月的天數(shù)判斷
if [ $day -eq 32 ]
then
day=1
((month++))
fi
fi
if [ $month -eq 4 -o $month -eq 6 -o $month -eq 9 -o $month -eq 11 ]
then #對于4、6、9、11月的天數(shù)判斷
if [ $day -eq 31 ]
then
day=1
((month++))
fi
fi
if [ $month -eq 2 ]
then #對于2月的天數(shù)判斷 閏年29天 平年28天
if [ $flag -eq 1 ]
then
if [ $day -eq 30 ]
then
day=1
((month++))
fi
fi
if [ $flag -eq 0 ]
then
if [ $day -eq 29 ]
then
day=1
((month++))
fi
fi
fi
if [ $month -eq 13 ]
then
month=1
((year++))
fi
printf "%d-%02d-%02d %02d:%02d:%02d\r" $year $month $day $hour $min $sec
}
1 壓縮與打包壓縮的對象是文件
在ubuntu中,常用的壓縮文件格式有.gz、.bz2、.xz等
分別使用 gzip/gunzip 、bzip2/bunzip2 、xz/unxz命令來進(jìn)行壓縮與解壓縮
對于這三種格式,在壓縮率上 .xz>.gz>.bz2,壓縮速度 .xz>.gz>.bz2
壓縮和解壓縮這兩種操作都會替換源文件
歸檔的對象是目錄
通常使用tar命令進(jìn)行歸檔
例如tar -cvf main.tar main 將main打包成main.tar
其中c表示創(chuàng)建歸檔文件,v表示顯示過程,f表示后面跟文件名
可以在使用tar的同時將目錄歸檔的同時壓縮成文件。
使用-z: 壓縮成gzip格式
-j: 壓縮成bzip2格式
-J: 壓縮成xz格式
2 什么是shell腳本Shell是一種腳本語言,那么,就必須有解釋器來執(zhí)行這些腳本,常見的腳本解釋器有:
bash:是Linux標(biāo)準(zhǔn)默認(rèn)的shell。bash由Brian Fox和Chet Ramey共同完成,是BourneAgain Shell的縮寫,內(nèi)部命令一共有40個。
sh: 由Steve Bourne開發(fā),是Bourne Shell的縮寫,sh 是Unix 標(biāo)準(zhǔn)默認(rèn)的shell。
另外還有:ash、 csh、 ksh等。
3 shell腳本的使用1.文件的命名(結(jié)尾是.sh)
vim 01test.sh
2.腳本的第一行
#!/bin/bash: 標(biāo)識解析此腳本的shell是bash
3.腳本文件是不需要編譯的,直接由命令行解析器解析
4.執(zhí)行腳本
./01test.sh (腳本需要有可執(zhí)行權(quán)限)-->chomd a+x 01test.sh
bash 01test.sh
source 01test.sh
5.三種執(zhí)行方式的區(qū)別
1)./執(zhí)行腳本的時候需要可執(zhí)行權(quán)限,而bash和source都不需要可執(zhí)行權(quán)限
2)./和bash解析腳本的時候會新開子終端,在子終端中解析,將解析的結(jié)果返回到當(dāng)前終端,source是直接在當(dāng)前終端解析。
4 shell腳本中的變量1.變量不需要定義
2.變量沒有對應(yīng)的類型
3.變量賦值的時候直接寫=(等號前后不能有空格)
4.在shell腳本中,所有的變量被賦的值都認(rèn)為是字符串
5.賦值的區(qū)別如下
var1=123 -->字符串之間不能有空格
var1='123 456' -->可以有空格
var2="123 $var1" -->可以有空格,可以調(diào)用新的變量
6.變量的引用
$var1 ${var1}
7.使用echo來打印變量
echo $var1
8.通過位置變量可以進(jìn)行命令行的傳遞參數(shù)
$0 //腳本的名字
$1 $2....$9 ${10}...${n} //參數(shù)對應(yīng)位置的字符串
$@或$* //命令行傳遞的所有的參數(shù)(腳本名除外)
$# //命令行參數(shù)的個數(shù)
9.
unset 變量名 //清除變量的值
readonly 變量 //標(biāo)識這個變量是只讀的
5 shell中的運(yùn)算shell中的變量被賦的值都是字符串,所以它不能夠進(jìn)行算術(shù)運(yùn)算,如果想執(zhí)行算術(shù)運(yùn)算必須使用特殊的標(biāo)識來完成。
(()) 整數(shù)運(yùn)算
$[] 整數(shù)運(yùn)算
expr 整數(shù)運(yùn)算,字符串的運(yùn)算
6 (())的使用(($va1 + $var2))
((va1+ var2)) #在(())內(nèi)部變量可以有$,也可以沒有$符號,在運(yùn)算符前后可以加空格,也可以沒有空格
sum=$((var++)) #如果要將一個表達(dá)式的結(jié)果賦值給變量,需要在(())前加$符號
tt=$((表達(dá)式1,表達(dá)式2,表達(dá)式3,...))#所有的表達(dá)式都會參與運(yùn)算最后一個表達(dá)式的結(jié)果賦值給tt變量
在(())中可以做復(fù)雜的運(yùn)算
for((i = 0; i< 100;i++))
{((sum+=i))
}
echo $sum
7 $[]的使用var1=12
ret=$[var1++]
echo $[var1++] #s[]一定需要有變量去承接結(jié)果,如果不使用變量去接收結(jié)果,就必須使用echo輸出
ret=$[var2 + var3] #在$[]里面,可以有空格,也可以沒有空格,可以有$,也可以沒有$
#在$[]中不允許做復(fù)雜的運(yùn)算,比如for循環(huán)
ret=$[var1++,var2++,3**5]
echo $ret #最后一個表達(dá)式的結(jié)果解釋整個表達(dá)式的結(jié)果
8 expr的使用var1=12
var2=13
expr $var1 + $var2
[1]expr在運(yùn)算完之后結(jié)果會自動顯示
[2]expr在使用的變量的時候,變量前一定要有$符號
[3]運(yùn)算符前后要加空格,如果不加空格,會出錯
sum=`expr $var1 + $var2`
[4]如果要將expr的運(yùn)算的結(jié)果給新的變量,需要使用置換
mul=`expr 6 \* 3`
[5]expr在進(jìn)行*運(yùn)算的時候,如果不使用轉(zhuǎn)義符號,它認(rèn)為是通配符號,不能進(jìn)行乘法運(yùn)算
注:var1=`ls`
var1=$(ls)
[6] 使用expr求字符串的長度
expr length $var2 #var2變量中不能有空格,否則會出現(xiàn)語法錯誤
[7] 使用expr在源字符串中查找子字符的位置
expr index $var1 "123" #從左往右進(jìn)行匹配,返回一個符號字符的位置
[8]提取字符串
expr substr $var1 起始位置 提取的長度
[9] 字符串匹配
expr match $var1 "abc" #從左往右匹配,只要有任意一個匹配不上,則返回0,否則返回匹配上的個數(shù)
9 shell中的if語句if [ 判斷條件 ] #--->這里 []可以寫成test
then
#if成立執(zhí)行的語句
fi
# if不成立執(zhí)行的語句
if [ 判斷條件1 ] # --->這里 []可以寫成test
then
#判斷條件1成立執(zhí)行的語句
elif [ 判斷條件2 ]
then
#判斷條件2成立執(zhí)行的語句
else
#上述都不成立執(zhí)行的語句
fi
10 shell中對數(shù)字的判斷-eq 等于
-ne 不等于
-gt 大于
-ge 大于等于
-lt 小于
-le 小于等于
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧
分享文章:學(xué)習(xí)筆記day10C語言:高級命令與shell-創(chuàng)新互聯(lián)
鏈接分享:http://m.kartarina.com/article10/ccgigo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、外貿(mào)網(wǎng)站建設(shè)、小程序開發(fā)、網(wǎng)站改版、動態(tài)網(wǎng)站、網(wǎng)站營銷
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容