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

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

生活随笔

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

编程问答

4-1:shell编程之编写第一个shell脚本

發(fā)布時(shí)間:2025/3/15 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 4-1:shell编程之编写第一个shell脚本 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

  • 一:什么是shell腳本
  • 二:如何編寫(xiě)shell腳本
    • (1)腳本文件的格式
    • (2)可執(zhí)行權(quán)限
    • (3)執(zhí)行腳本
  • 三:第一個(gè)shell腳本
    • (1)基本結(jié)構(gòu)
    • (2)變量和常量
      • A:創(chuàng)建變量和常量
      • B:變量和常量賦值的問(wèn)題

一:什么是shell腳本

你可以這樣理解:shell腳本是一個(gè)包含一系列的文件,shell會(huì)讀取這個(gè)文件,最后執(zhí)行相應(yīng)命令。就好像這些命令是直接輸入到命令行中一樣

二:如何編寫(xiě)shell腳本

編寫(xiě)shell腳本必須明確三件事情

  • 一個(gè)文本編輯器:shell腳本是普通文件,所以需要文本編輯器進(jìn)行編輯,這個(gè)編輯最好有代碼高亮,語(yǔ)法提示等功能
  • 使腳本可執(zhí)行:系統(tǒng)會(huì)執(zhí)行你的腳本文件,所以必須要將腳本文件的權(quán)限設(shè)置為允許執(zhí)行
  • 將腳本放置在shell可以發(fā)現(xiàn)的位置
  • (1)腳本文件的格式

    好的現(xiàn)在讓我們編寫(xiě)第一個(gè)shell腳本,新建一個(gè)文件hello,該腳本文件的目的就是向屏幕輸出Hello World
    于是輸入

    #! /bin/bash echo 'Hello World' #this is a script

    就像#include一樣,#! /bin/bash是用來(lái)告知操作系統(tǒng)用命令行解釋器的名字,每一個(gè)shell腳本都應(yīng)該以它作為第一行

    (2)可執(zhí)行權(quán)限

    為了讓該文件可以被執(zhí)行,需要賦予執(zhí)行權(quán)限。一般有兩種,755表示每個(gè)人都可以執(zhí)行,700表示只有腳本創(chuàng)建者可以執(zhí)行

    (3)執(zhí)行腳本

    好的現(xiàn)在讓我們執(zhí)行文件,還記得是如何執(zhí)行C語(yǔ)言編譯好的文件嗎?

    三:第一個(gè)shell腳本

    好的,經(jīng)過(guò)前面的敘述,想必大家對(duì)shell腳本應(yīng)該有了一個(gè)簡(jiǎn)單的認(rèn)識(shí)了吧。現(xiàn)在我來(lái)做一個(gè)案例,我們要編寫(xiě)一個(gè)報(bào)告生成器,用來(lái)顯示系統(tǒng)的各種統(tǒng)計(jì)數(shù)據(jù)和狀態(tài),并以HTML的方式保存。這樣每次運(yùn)行這個(gè)腳本,它就能獲取最新的系統(tǒng)狀況了。

    (1)基本結(jié)構(gòu)

    我認(rèn)為HTML的基本格式大家都應(yīng)該知道吧

    <DOCTYPE html>5 <html>6 <head>7 <meta charset="utf-8">8 <title>TEST</title>9 </head>10 <body>11 can you see me? 12 </body>13 </html>

    首先我們需要將這個(gè)html文件輸出到標(biāo)準(zhǔn)輸出,編寫(xiě)腳本如下

    然后運(yùn)行這段程序,并將其重定向到文件info.html中

    接著使用火狐瀏覽器打開(kāi)這個(gè)文件,就可以看見(jiàn)相應(yīng)的內(nèi)容了

    好的繼續(xù)完善如下

    <DOCTYPE html>5 <html>6 <head>7 <meta charset="utf-8">8 <title>System information report</title>9 </head>10 <body>11 <h1>System information report</h1> 12 </body>13 </html>

    (2)變量和常量

    可以發(fā)現(xiàn)上面我們的腳本出現(xiàn)了兩次System information report,類(lèi)似于C語(yǔ)言中的宏,對(duì)于這種多次出現(xiàn)的如果需要修改時(shí)工作量會(huì)很大,所以我們這樣做**,類(lèi)似于C語(yǔ)言中的字符串,定義一個(gè)變量存儲(chǔ)它,修改時(shí)只需修改變量的內(nèi)容**

    1 #! /bin/bash2 3 4 mytitle="System information report" //變量 5 echo "6 <DOCTYPE html>7 <html>8 <head>9 <meta charset="utf-8">10 <title>$title</title>11 </head>12 <body>13 <h1>$title</h1>14 </body>15 </html>16 "

    A:創(chuàng)建變量和常量

    不同于某些編程語(yǔ)言,shell遇見(jiàn)一個(gè)新的變量時(shí),會(huì)自動(dòng)創(chuàng)建這個(gè)變量。
    比如在命令行中,為變量賦值為yes,然后使用$擴(kuò)展進(jìn)行查看

    如果直接使用參數(shù)擴(kuò)展查看一個(gè)沒(méi)有命名的變量,那么這個(gè)變量將會(huì)被自動(dòng)創(chuàng)建,并且被賦值為空值

    這樣會(huì)導(dǎo)致一些問(wèn)題,比如下面test和test1兩個(gè)文件,還有test和test1兩個(gè)變量,他么分別賦值為test.txt和test1.txt,使用cp命令將test變量的值復(fù)制給test1,如果輸入正確,將達(dá)到我們的目的。但是如果故意輸入錯(cuò)誤,那么根據(jù)前面的描述,cp的第二個(gè)參數(shù)就會(huì)成為了空值

    所以變量就意味著會(huì)發(fā)生變化,類(lèi)似于用const修飾的變量,我們需要常量,使其值不能發(fā)生變化,發(fā)生變化就會(huì)報(bào)錯(cuò)
    在shell中我們用大寫(xiě)字母表示常量,用小寫(xiě)字母表示變量
    我們把之前的例子,修改如下,使用擴(kuò)展來(lái)輸出我們的主機(jī)名

    1 #! /bin/bash2 3 4 MYTTILE="System information report for $HOSTNAME" //變量 5 echo "6 <DOCTYPE html>7 <html>8 <head>9 <meta charset="utf-8">10 <title>$TITLE</title>11 </head>12 <body>13 <h1>$TITLE</h1>14 </body>15 </html>16 "

    B:變量和常量賦值的問(wèn)題

    shell并不關(guān)心的你的變量是什么類(lèi)型的,因?yàn)樗紩?huì)被當(dāng)做字符串,但是要注意以下問(wèn)題

    在擴(kuò)展期間,變量名稱可以用花括號(hào)括起來(lái),當(dāng)變量名因?yàn)橹茉猸h(huán)境而變得不明確時(shí),就會(huì)非常有幫助
    比如要使用變量的方式,將一個(gè)文件的名字由file改為file1
    如果直接操作,會(huì)發(fā)現(xiàn)由于$name1會(huì)被當(dāng)做新的變量名,而產(chǎn)生空值,所以使用花括號(hào)會(huì)解決這種歧義的問(wèn)題

    好的回歸正題,我們加入一些其他信息

    1 #! /bin/bash2 3 4 MYTTILE="System information report for $HOSTNAME" 5 TIME=$(date) 5 echo "6 <DOCTYPE html>7 <html>8 <head>9 <meta charset="utf-8">10 <title>$TITLE</title>11 </head>12 <body>13 <h1>$TITLE</h1>14 <h2>time is :$TIME</h2>14 </body>15 </html>16 "

    總結(jié)

    以上是生活随笔為你收集整理的4-1:shell编程之编写第一个shell脚本的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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