日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

shell脚本编程规范与变量

發(fā)布時(shí)間:2023/12/20 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 shell脚本编程规范与变量 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.



shell的作用:




環(huán)境:

平臺(tái):VMware workstation 14

系統(tǒng):CentOS Linux release 7.4.1708 (Core)


編寫第一個(gè)shell腳本:

?? ? 注: sh為腳本格式 ? first為腳本的名稱?

? first腳本中的內(nèi)容

給所有人加權(quán)


shell腳本的執(zhí)行方式:

1 腳本的路徑

? ?? 絕對(duì)路徑?

? ? ? ? ? ?

? ?? 相對(duì)路徑

? ? ? ? ? ? ? ?

?? 注:必須腳本文件要有執(zhí)行權(quán)限

? ? ? ? ??

2 ? ?? sh 腳本文件路徑

? ? ??

? ?? 注: 如果腳本文件在opt目錄下,? 則: sh /opt/first.sh ? /? 先cd /opt? 再 sh first.sh


3 ?? source 腳本路徑

? ??



注:2 -a 3可以不需要執(zhí)行權(quán)限 ? 1必須要



編寫第二個(gè)shell腳本:

shell腳本的構(gòu)成:

?1? 腳本聲明

? #!/bin/bash ? 聲明后面的命令可以通過(guò)此shell程序去解釋并執(zhí)行

?2? 注釋信息

?? 摘要,腳本作用,參數(shù)說(shuō)明,工作效率,創(chuàng)建日期,作者,版本聲明,第幾次修改,每次返回的動(dòng)態(tài)值的定義等

?3? 可執(zhí)行的命令語(yǔ)句

? ? 注:所有特殊符號(hào)必須是英文模式輸入

實(shí)例1:新建文件



實(shí)例2:刪除文件

實(shí)例3:創(chuàng)建用戶

cat /etc/passwd

實(shí)例4: 創(chuàng)建指定容量的文件


實(shí)例5: 計(jì)劃任務(wù)

crontab -e

每天的下午1點(diǎn)半執(zhí)行2.sh這個(gè)腳本一次



更友好的顯示腳本內(nèi)容:




重定向與管道操作:


實(shí)例6:使用密碼文本文件 修改用戶密碼 ?


解:? 創(chuàng)建一個(gè)密碼文件passwd.txt? 密碼為:123456

tom為已有用戶,將密碼文件導(dǎo)給tom 實(shí)現(xiàn)重置tom的密碼為123456


實(shí)例7:

將ls這條命令的輸出保存到 1.txt文件中


> 覆蓋原有的內(nèi)容

>>? 追加


實(shí)例8:


將標(biāo)準(zhǔn)輸出1.txt? 標(biāo)準(zhǔn)錯(cuò)誤輸出2.txt中



實(shí)例9:




shell變量的作用,類型


自定義變量

  • 聲明變量不需要聲明類型

  • 可以存儲(chǔ)不同類型內(nèi)容 A=wa1

  • 有時(shí)候使用變量時(shí)要明確變量類型

  • 嚴(yán)格區(qū)分大小寫

  • 等于號(hào)兩邊不允許出現(xiàn)空格

  • 不能使用標(biāo)點(diǎn)符號(hào)作為變量名

  • 不能使用bash里面的關(guān)鍵字作為變量名

  • 首個(gè)字符必須是字母(a-z A-Z或_)


  • 格式 ? 變量名=變量值

    查看變量:

    ? ?? echo $變量名

    ? ?? echo ${變量名}


    通過(guò)echo進(jìn)行一個(gè)輸出變量,其中$是引用變量的特殊字符(必須要使用$符號(hào))


    注:echo和調(diào)用的變量之間必須要有空格

    ? ? ?? 當(dāng)需要一起調(diào)用多個(gè)變量時(shí),以空格隔開(kāi)

    ? ? ? ? 當(dāng)變量名和后面的字符混淆的時(shí)候,應(yīng)使用{ }將變量名括起來(lái)



    變量賦值的特殊操作:

    1 雙引號(hào) ""

    ?? 當(dāng)變量值之間有空格的時(shí)候,要使用""括起來(lái)

    2 單引號(hào) ' '

    禁止引用變量值,將$符號(hào)當(dāng)作普通字符來(lái)使用

    3 反撇號(hào) ``

    與$() 效果一樣

    作用:命令替換,提取命令執(zhí)行的結(jié)果


    優(yōu)先執(zhí)行反撇號(hào)里面的內(nèi)容,再執(zhí)行其他

    變量賦值的時(shí)候,如果想要賦值的是某條命令執(zhí)行的結(jié)果,必須使用反撇號(hào)

    缺點(diǎn):反撇號(hào)部不是現(xiàn)嵌套命令替換操作,這時(shí)候使用$()來(lái)替換


    4 交互式賦值 read

    read 命令用于提示用戶輸入信息,從而實(shí)現(xiàn)簡(jiǎn)單交互過(guò)程(輸入命令就是一個(gè)交互式過(guò)程)

    多個(gè)變量名交互式賦值,賦值之間有空格,變量名也有空格

    為了更友好,通常使用-p 來(lái)提示信息


    5 設(shè)置變量的作用范圍

    export? 變量名 ...

    export 變量名=變量值

    作用:設(shè)置全局變量,所有子shell程序都可以使用此變量

    注:bash為切換環(huán)境 export導(dǎo)為全局變量


    永久生效:

    vi /etc/profile

    export 變量名=變量值

    source /etc/profile



    整數(shù)變量的運(yùn)算

    expr 變量1 運(yùn)算符 變量2 ... ??

    $(()) ? ? ? ?? ++? --? **

    ?

    ? ? 常用變量:

    ? ? ? ?? + ? - ?? \* ?? / ? %




    環(huán)境變量


    配置文件:

    全局

    單用戶:




    ?常見(jiàn)的環(huán)境變量

    PWD :顯示當(dāng)前所在的工作目錄

    USER :? 顯示用戶名稱? 可以查看當(dāng)前登陸的用戶

    HOME:? 用戶的家目錄 顯示當(dāng)前用戶的家目錄

    LANG: 語(yǔ)言和字符集變量?

    PATH: 命令搜索路徑? , 可以用tab鍵補(bǔ)全

    PS1: 提示符變量

    SHELL:shell程序




    位置變量

    預(yù)定義變量



    轉(zhuǎn)載于:https://blog.51cto.com/14188767/2370525

    總結(jié)

    以上是生活随笔為你收集整理的shell脚本编程规范与变量的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。