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

【Linux腳本篇】shell變量的使用

這篇具有很好參考價(jià)值的文章主要介紹了【Linux腳本篇】shell變量的使用。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

【Linux腳本篇】shell變量的使用

目錄

??shell變量替換

??定義變量

??shell變量運(yùn)算

??整數(shù)運(yùn)算

??小數(shù)運(yùn)算


?????博客主頁:大蝦好吃嗎的博客

? ???專欄地址:Linux從入門到精通

shell變量替換

${變量#匹配規(guī)則} ????????????????????????????????????????#從頭開始匹配,最短刪除

${變量##匹配規(guī)則}? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??? #從頭開始匹配,最長刪除

${變量%匹配規(guī)則}? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?#從尾開始匹配,最短刪除

${變量%%匹配規(guī)則}? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #從尾開始匹配,最長刪除

${變量/舊字符串/新字符串}? ? ? ? ? ? ? ? ? ? ? ? ? #替換字符串,僅替換第一個(gè)

${變量//舊字符串/新字符串} ????????????????????????#替換字符串,替換全部

例1:從前往后刪變量內(nèi)容

[root@daxia ~]# Url=z3.www.baidu.com.cn
[root@daxia ~]# echo $Url
z3.www.baidu.com.cn
[root@daxia ~]# echo ${Url#*.}              #刪除以 . 分割的第一個(gè)字段
www.baidu.com.cn
[root@daxia ~]# echo ${Url##*.}             #僅保留最后一個(gè)字段
cn

例2:從后往前刪變量內(nèi)容

[root@daxia ~]# echo $Url
z3.www.baidu.com.cn
[root@daxia ~]# echo ${Url%.*}              #刪除最后一個(gè)字段
z3.www.baidu.com
[root@daxia ~]# echo ${Url%%.*}             #僅保留第一個(gè)字段
z3

例3:變量內(nèi)容替換

[root@daxia ~]# echo $Url
z3.www.baidu.com.cn
[root@daxia ~]# echo ${Url/z3/l4}           #替換第一個(gè)z3為l4
l4.www.baidu.com.cn
[root@daxia ~]# echo ${Url//z3/l4}          #替換全部z3為l4
l4.www.baidu.com.cn

腳本題: 把/data下所有.txt文件,改名.bak,并tar包備份到/backup,最后解壓還原文件名。合并起來做可能不理解,分開后嘗試一下。

[root@daxia ~]# mkdir /data
[root@daxia ~]# mkdir /backup
[root@daxia ~]# touch /data/file{1..9}.txt
[root@daxia ~]# vim rename.sh
#!/bin/bash
File_txt=$(find /data -type f -iname "*.txt" |xargs > /data/txt.f)
for a in $(cat /data/txt.f)
do
    mv $a $a.bak
done 
?
tar zcf /backup/file.tar.gz  /data/*.bak
?
File_txt=$(find /data -type f -iname "*.bak" |xargs > /data/bak.f)
for b in $(cat /data/bak.f)
do
    mv $b ${b%.*}
done
?
?
#執(zhí)行腳本
[root@daxia ~]# sh rename.sh
tar: 從成員名中刪除開頭的“/”

定義變量

happiness="towards the sea, with spring flowers blossoming,the the" 執(zhí)行腳本,輸出變量,并要求:

  1. 打印變量值字符串長度

  2. 刪除所有的the

  3. 替換第一個(gè)the為that

  4. 替換所有the為that 用戶按“1|2|3|4” ,輸出相應(yīng)選項(xiàng)內(nèi)容,q|Q 退出

[root@daxia ~]# vim test1.sh
#!/bin/bash
happiness="towards the sea, with spring flowers blossoming,the the"
?
echo $happiness
?
cat <<EOF
1) 打印happiness長度
2) 刪除所有的the
3) 替換第一個(gè)the為that
4) 替換所有the為that
EOF
?
read -p "請輸入數(shù)字 1|2|3|4,或    q|Q: " var
?
if [ $var == q ];then
    exit
fi
?
if [ $var == Q ];then
    exit
fi
?
if [ $var -eq 1 ];then
    echo "當(dāng)前happiness變量的長度是:${#happiness}"
fi
?
if [ $var -eq 2 ];then
    echo ${happiness//the/}
fi
?
if [ $var -eq 3 ];then
    echo ${happiness/the/that}
fi
?
if [ $var -eq 4 ];then
    echo ${happiness//the/that}
fi

shell變量運(yùn)算

整數(shù)運(yùn)算

expr、$(())、$[],不支持小數(shù)運(yùn)算

a+b 加 a-b 減 a*b 乘(expr計(jì)算時(shí),用 * ) a/b 除 a%b 余

例1:

[root@daxia ~]# a=20
[root@daxia ~]# b=10
[root@daxia ~]# expr $a + $b
30
[root@daxia ~]# echo $(($a+$b))
30
[root@daxia ~]# echo $[$a+$b]
30

例2:遞增和遞減

[root@daxia ~]# echo $((a++))       #表示先打印變量a,然后在加一位數(shù)值變成21,
20
[root@daxia ~]# echo $((a--))
21
[root@daxia ~]# echo $((++b))       #表示先加一位數(shù)值,在打印變量
11
[root@daxia ~]# echo $((--b))
10
[root@daxia ~]# echo $((100*(1+100)/2))         #求1加到100的和
5050

小數(shù)運(yùn)算

bc加”|“管道符使用,可以將前面打印的結(jié)果給bc工具處理。

[root@daxia ~]# yum -y install bc           #安裝bc工具
?
[root@daxia ~]# echo "2*4"
2*4
[root@daxia ~]# echo "2*4" | bc
8
[root@daxia ~]# echo "2^4" | bc
16
[root@daxia ~]# echo "scale=2;3/2" | bc
1.50
[root@daxia ~]# awk 'BEGIN{print 3/2}'              #awk也可以計(jì)算
1.5

腳本題: 例1:查看內(nèi)存使用率,僅保留整數(shù)

[root@daxia ~]# vim mem.sh
#!/bin/bash
Mem_use=$(free -m |grep ^M |awk '{print $3/$2*100}')
if [ ${Mem_use%.*} -ge 80 ];then
    echo "memory is overfull: ${Mem_use%.*}%"
else
    echo "memory is OK: ${Mem_use%.*}%"
fi 
?
[root@daxia ~]# sh mem.sh
memory is OK: 47%

例2:查看磁盤使用狀態(tài),使用率超出80%就報(bào)警 思路: 怎么查看磁盤 怎么提取使用率 整數(shù)判斷文章來源地址http://www.zghlxwxcb.cn/news/detail-457962.html

[root@daxia ~]# vim disk.sh
?
#!/bin/bash
Disk=$(df -h |grep /$ |awk '{print $(NF-1)}')
?
if [ ${Disk%\%} -ge 80 ];then
    echo "你的磁盤使用率過高:$Disk"
else 
    echo "你的磁盤使用率正常:$Disk"
fi 
?
[root@daxia ~]# sh disk.sh
你的磁盤使用率正常:31%

到了這里,關(guān)于【Linux腳本篇】shell變量的使用的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(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ī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

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

相關(guān)文章

  • lv3 嵌入式開發(fā)-5 linux shell腳本編程(概念、變量、語句)

    lv3 嵌入式開發(fā)-5 linux shell腳本編程(概念、變量、語句)

    ?Shell腳本是利用 shell 的功能所寫的一個(gè)程序。這個(gè)程序是使用純文本文件,將一些 shell 的語法與命令(含外部命令)寫在里面,搭配正則表達(dá)式、管道命令與數(shù)據(jù)流重定向等功能 ?第一個(gè)Shell腳本文件 變量來源于數(shù)學(xué),是計(jì)算機(jī)語言中能儲存計(jì)算結(jié)果或能表示值的抽象概念

    2024年02月10日
    瀏覽(56)
  • 【Linux】shell 腳本基礎(chǔ)使用

    【Linux】shell 腳本基礎(chǔ)使用

    在終端中輸入命令可以完成一些常用的操作,但是我們都是一條一條輸入命令,比較麻煩,為了解決這個(gè)問題,就會涉及到 shell 腳本,它可以將很多條命令放到一個(gè)文件里面,然后直接運(yùn)行這個(gè)文件即可。 shell 腳本類似 Windows 的批處理文件 shell 腳本就是將連續(xù)執(zhí)行的命令寫

    2024年04月23日
    瀏覽(18)
  • shell_73.Linux使用新 shell 啟動(dòng)腳本

    每次啟動(dòng)新 shell,bash shell 都會運(yùn)行.bashrc 文件。①對此進(jìn)行驗(yàn)證,可以使用這種方法:在 主目錄下的.bashrc 文件中加入一條簡單的 echo 語句,然后啟動(dòng)一個(gè)新 shell。 .bashrc 文件通常也借由某個(gè) bash 啟動(dòng)文件來運(yùn)行,因?yàn)?bashrc 文件會運(yùn)行兩次:一次是當(dāng) 用戶登錄 bash shell 時(shí),

    2024年02月05日
    瀏覽(28)
  • Linux:shell腳本:基礎(chǔ)使用(2)

    Linux:shell腳本:基礎(chǔ)使用(2)

    格式1:test ?條件表達(dá)式 格式2:[ ?條件表達(dá)式 ?] ?(前后至少應(yīng)有一個(gè)空格) 常用的測試操作符 -d:測試是否為目錄(Directory) -e:測試目錄或文件是否存在(Exist) -f:測試是否為文件(File) -r:測試當(dāng)前用戶是否有權(quán)限讀取(Read) -w:測試當(dāng)前用戶是否有權(quán)限寫入(Writ

    2024年02月13日
    瀏覽(13)
  • Linux shell編程學(xué)習(xí)筆記44:編寫一個(gè)腳本,將md5sum命令執(zhí)行結(jié)果保存到變量中,進(jìn)而比較兩個(gè)文件內(nèi)容是否相同

    Linux shell編程學(xué)習(xí)筆記44:編寫一個(gè)腳本,將md5sum命令執(zhí)行結(jié)果保存到變量中,進(jìn)而比較兩個(gè)文件內(nèi)容是否相同

    在? Linux shell編程學(xué)習(xí)筆記42:md5sum https://blog.csdn.net/Purpleendurer/article/details/137125672?spm=1001.2014.3001.5501 中,我們提到編寫一個(gè)在Linux系統(tǒng)下比較兩個(gè)文件內(nèi)容是否相同的腳本。 基本思路是: 其中有兩個(gè)難點(diǎn): 1.文件的md5值的獲取 2.md5值的比較 對于第1個(gè)難點(diǎn),我們的解決辦法是

    2024年04月10日
    瀏覽(28)
  • Shell腳本的變量

    Shell腳本的變量

    目錄 shell腳本變量: 1.變量的介紹: 2.變量的作用: 3.變量的類型?: 4.自定義變量?: (1)自定義變量命名要求: (2)定義與查看變量: (3)賦值時(shí)使用的引號?: ?編輯(4)從鍵盤輸入內(nèi)容為變量賦值: (5) 變量的運(yùn)算?: (6)浮點(diǎn)數(shù)運(yùn)算 : 5.環(huán)境變量: 1.環(huán)境變

    2024年01月24日
    瀏覽(13)
  • Shell腳本——變量

    Shell腳本——變量

    目錄 一.Shell腳本的變量基本介紹 1.Shell腳本的變量是什么? 2.變量的作用 3.變量作用范圍 4.刪除變量 二.變量的類型 1.自定義變量 1.1 命名要求 1.2 定義新的變量 1.3?查看定義的變量的值 1.4 賦值時(shí)使用符號 1.5 從鍵盤輸入內(nèi)容為變量賦值 2.環(huán)境變量 3.只讀變量 4.位置變量 5.預(yù)定

    2024年02月07日
    瀏覽(15)
  • Linux 環(huán)境使用定時(shí)任務(wù)執(zhí)行shell腳本

    Linux 環(huán)境使用定時(shí)任務(wù)執(zhí)行shell腳本

    前言:Linux添加定時(shí)任務(wù)需要依賴crond服務(wù),如果沒有該服務(wù),需要先安裝:yum -y install crontabs 1、crond服務(wù)相關(guān)命令介紹 ????????啟動(dòng)crond服務(wù): service crond start ????????停止crond服務(wù): service crond stop ????????重啟crond服務(wù): service crond restart ????????重載crond服務(wù)

    2024年02月16日
    瀏覽(21)
  • Linux使用shell腳本判斷cpu架構(gòu)

    sh文件示例如下: #!/bin/sh SCRIPTDIR=\\\"$( cd \\\"$( dirname \\\"$0\\\" ?)\\\" pwd ?)\\\" dlldir=$SCRIPTDIR cd `dirname $0` get_arch=`arch` dotnetName=\\\"dotnet\\\" if [[ $get_arch =~ \\\"x86_64\\\" ]];then ?? ?echo \\\"this is x86_64\\\" ?? ?if [ ! -f dotnet ];then ?? ??? ?tar xvf aspnetcore-runtime-3.1.30-linux-x64.tar.gz ?? ?fi ?? ?dotnetName=\\\"./dotnet\\\" elif [[

    2023年04月26日
    瀏覽(16)
  • shell_45.Linux在腳本中使用 getopt

    在腳本中使用 getopt 目前看起來相當(dāng)不錯(cuò)。但是,getopt 命令中仍然隱藏著一個(gè)小問題??纯催@個(gè)例子: getopt 命令并不擅長處理帶空格和引號的參數(shù)值。它會將空格當(dāng)作參數(shù)分隔符,而不是根 據(jù)雙引號將二者當(dāng)作一個(gè)參數(shù)。好在還有另外的解決方案。

    2024年02月08日
    瀏覽(17)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包