shell腳本編程基礎(1)

一.位置變量相關知識

    1.位置變量定義:在腳本代碼中調用通過命令行傳遞給腳本的的參數

    2.位置變量種類:   

            $1 $2 … :對應第一、第二…參數 shift [n]換位置

            $@:傳遞給腳本的所有參數,每個參數為獨立字符串

            $#:傳遞給腳本的參數的個數

            $*:傳遞給腳本的所有參數,全部參數合為一個字符串

            $0:命令本身

    注意:$#和$@只有加上“”才會有區別

實例:寫腳本argdesc.sh先說明各個變量的作用,腳本內容如下

1.png

實驗結果如下

2.png

3.$@和$*的區別

    $@:代表所有參數,每個參數作為獨立字符串

    $*:代表所有字符串,把他們作為一個整體

    (1)新建腳本文件1.sh,讓其調用2.sh,內容如下

3.png

(2)新建腳本文件2.sh,分別調用“$@”、“$*”,內容如下

4.png

(3)給予執行權限運行,此時把1.sh的參數作為整體

5.png

4.$#的說明

(1)$#指的是腳本調用多少參數

(2)在上邊使用過的2.sh中修改,內容如下

6.png

(3)執行2.sh,結果如下

7.png

總結:不論里邊是否調用外邊參數,$#表示的是外邊的參數個數總和

二.作業

1、編寫腳本/root/bin/systeminfo.sh,顯示當前主機系統信息,包括主機名,IPv4地址,操作系統版本,內核版本,CPU型號,內存大小,硬盤大小。

腳本內容如下:

1.png

執行結果如下

1.1.png

2、編寫腳本/root/bin/backup.sh,可實現每日將/etc/目錄備份到/root/etcYYYY-mm-dd中

文本內容如下:

2.png

運行結果如下:

2.1.png

3、編寫腳本/root/bin/disk.sh,顯示當前硬盤分區中空間利用率最大的值

腳本內容如下:

3.png

運行結果如下:

3.1.png

4、編寫腳本/root/bin/links.sh,顯示正連接本主機的每個遠程主機的IPv4地址和連接數,并按連接數從大到小排序

腳本內容如下:

4.png

執行結果:

4.1.png

5、寫一個腳本/root/bin/sumid.sh,計算/etc/passwd文件中的第10個用戶和第20用戶的ID之和

腳本內容如下:

5.png

結果如下:

5.1.png

6、寫一個腳本/root/bin/sumspace.sh,傳遞兩個文件路徑作為參數給腳本,計算這兩個文件中所有空白行之和

腳本內容如下:

6.png

結果如下:

6.1.png

7、寫一個腳本/root/bin/sumfile.sh,統計/etc, /var, /usr目錄中共有多少個一級子目錄和文件

腳本內容如下:

7.png

結果如下:

7.1.png

8、寫一個腳本/root/bin/argsnum.sh,接受一個文件路徑作為參數;如果參數個數小于1,則提示用戶“至少應該給一個參數”,并立即退出;如果參數個數不小于1,則顯示第一個參數所指向的文件中的空白行數

腳本內容如下:

8.png

結果如下:

8.1.png

9、寫一個腳本/root/bin/hostping.sh,接受一個主機的IPv4地址做為參數,測試是否可連通。如果能ping通,則提示用戶“該IP地址可訪問”;如果不可ping通,則提示用戶“該IP地址不可訪問”

腳本內容如下:

9.png

結果如下:

9.1.png

10、chmod -rw /tmp/file1,編寫腳本/root/bin/per.sh,判斷當前用戶對/tmp/fiile1文件是否不可讀且不可寫

腳本內容如下:

10.png

結果如下:

10.1.png

11、編寫腳本/root/bin/nologin.sh和login.sh,實現禁止和充許普通用戶登錄系統。

腳本內容如下:

5.png

結果如下:

6.png

12、寫一個腳本/root/bin/hostping.sh,接受一個主機的IPv4地址做為參數,先判斷是否合格IP,否,提示IP格式不合法并退出,是,測試是否可連通。如果能ping通,則提示用戶“該IP地址可訪問”;如果不可ping通,則提示用戶“該IP地址不可訪問”

腳本內容如下:

2.png

結果如下:

2.1.png

13、計算1+2+3+…+100的值

腳本內容如下:

3.png

結果如下:

3.1.png

14、計算從腳本第一參數A開始,到第二個參數B的所有數字的總和,判斷B是否大于A,否提示錯誤并退出,是則計算之

腳本內容如下:

3.png

結果如下:

32.png

原創文章,作者:mengzhiqian,如若轉載,請注明出處:http://www.www58058.com/34786

(0)
mengzhiqianmengzhiqian
上一篇 2016-08-15 09:25
下一篇 2016-08-15 09:25

相關推薦

  • yum報錯2

    我的系統是centos 6.8 x86的; 安裝pam_mysql時報錯如下: [root@Ams ~]# yum install pam_mysql -y Loaded plugins: fastestmirror, refresh-packagekit, security Setting up Install Process Loading mirror…

    Linux干貨 2016-08-02
  • 第三周作業

    1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次既可。 [root@director ~]# who | cut -d' ' -f 1 | sort | uniq &nbsp…

    Linux干貨 2016-12-13
  • Python之入門篇

    一、環境準備 環境準備 –> pyenv (安裝python解釋器,管理Python版本,管理python虛擬環境) https://github.com/pyenv/pyenv https://github.com/yyuu/pyenv-installer # yum -y install git # curl -L https://ra…

    Linux干貨 2015-02-07
  • Linuxd的發展史

    Linux發展史 Linux誕生:   1991年的八月,一個芬蘭的名為Linus Torvalds的大學生為自己開始寫作一個類似minix,可運行在386上的操作系統尋找志同道合的合作伙伴。FREAX系統后改名Linux。  Linux是什么:   按照Linux開發者的說法,Linux是一個遵循POSIX(注一)標作系統,標…

    Linux干貨 2016-10-14
  • mageedu_20160802

     用戶的管理權限設置與更改以及ACL的存在及其實用意義      一.用戶的管理權限如何設置與更改以及umask值的含義    由于linux系統是一個多用戶使用的系統,對于各個用戶指定的文件或目錄必須存在一套管理系統,以防止多用戶對相同文件的混淆使用。于是催生出了linux系統文件的用戶權限設置?!?/p>

    Linux干貨 2016-08-03
  • CentOS6 網絡管理之網卡配置及簡單路由設置

    CentOS6中關于網絡配置的命令有很多,本文將介紹幾個平時最長用的幾個命令,以及網卡IP地址的配置和簡單路由配置。 1、經常使用的查看IP地址命令為 ifconfig,不跟參數的情況下默認查看所有已啟用的網卡信息,如下圖所示: 如果想查看具體某塊網卡信息,則可以在ifconfig后面跟上網卡設備,如只查看eth0的信息則執行:ifconfig eht0 即…

    Linux干貨 2016-09-05

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-08-16 16:26

    對位置變量總結的詳細,作業完成的也很認真,但是對各個變量之間的差別,更應用場景需要有一個完整的總結哦,

欧美性久久久久