Linux開發_Shell腳本編程語言

      網友投稿 860 2025-04-01

      任務1:shell腳本語言

      linux下常用的腳本語言。

      變量、數組、for、while、函數、運算符、if、……..

      [root@wbyq /]# ls /bin/sh -l

      lrwxrwxrwx. 1 root root 4 12月 27 2016 /bin/sh -> bash

      ? ?變量定義使用

      #!/bin/bash

      ABC=12345

      echo "ABC=$ABC"

      echo "ABC=${ABC}"

      ? ?shell腳本傳遞參數 類似于C語言的argv argc

      #!/bin/bash

      echo "cnt=$#"

      echo "[0]=

      echo "[0]=$0"

      "

      echo "[1]="

      echo "[2]="

      echo "[3]="

      ? ?if語句語法規則

      #!/bin/bash

      a=10

      b=20

      if [ ${a} -eq ${b} ] #判斷兩個數是否相等,也可以使用 ==

      then

      echo "123"

      else

      echo "456"

      fi

      Linux開發_Shell腳本編程語言

      #!/bin/bash

      if [ 100 == 120 -o 50 != 40 ] && [ 100 == 200 ]

      then

      echo "條件為真"

      else

      echo "條件為假"

      fi

      #一個[]表示一個完整的表達式

      #-a表示與 -o表示或 只能用于單個表達式之內

      #多個表達式之間可以使用&&和 || 嵌套連接

      #!/bin/bash

      #嵌套if語句示例

      if [ 100 == 120 -o 50 != 40 ] && [ 100 == 200 ]

      then

      if [ 100 == 120 -o 50 != 40 ] && [ 100 == 200 ]

      then

      echo "條件為真"

      else

      echo "條件為假"

      fi

      else

      if [ 100 == 120 -o 50 != 40 ] && [ 100 == 200 ]

      then

      echo "條件為真"

      else

      echo "條件為假"

      fi

      fi

      ? ?計算字符串長度

      #!/bin/bash

      string="abcd"

      echo ${#string} #輸出 4

      ? ?數組語法

      #!/bin/bash

      buff=(1 2 3 4 5 6 7 8 9)

      buff[0]=88

      buff[1]=99

      buff[100]=100

      buff[88]=55

      echo "buff[0]=${buff[0]}"

      echo "buff[1]=${buff[1]}"

      echo "buff[2]=${buff[2]}"

      echo "buff[100]=${buff[100]}"

      ? ?echo用法示例

      #!/bin/bash

      DATA=12345

      echo "DATA=${DATA}"

      ? ?printf語句格式

      #!/bin/bash

      printf "%d\n" 1234

      printf "%s\n" "45678"

      ? ?從鍵盤上讀取數據

      #!/bin/bash

      echo -n "輸入數據:" #參數-n 的作用是不換行, echo 默認是換行

      read data #從鍵盤輸入

      echo "你輸入的數據為: $data" #顯示信息

      ? ?Case多分支選擇語句

      #!/bin/bash

      echo "輸入一個 1 到 4 之間的數字"

      read aNum

      case ${aNum} in

      1) echo "你選擇 1"

      ;;

      2) echo "你選擇 2"

      ;;

      3) echo "你選擇 3"

      ;;

      4) echo "你選擇 4"

      ;;

      5) echo "你選擇 4"

      ;;

      *) echo "你不選擇一個數字不在 1 到 4 之間"

      ;;

      esac

      ? ?for循環

      (1)基本用法

      #!/bin/bash

      for loop in 1 2 3 4 5 6 7 8 9

      do

      echo "loop=${loop}"

      done

      (2) 嵌套示例

      #!/bin/bash

      for loop in 1 2 3

      do

      for loop in 1 2 3

      do

      echo "loop=${loop}"

      done

      done

      (3)輸出位置路徑

      #!/bin/bash

      for loop in /test/*.sh

      do

      echo "file_name=${loop}"

      done

      ? ?break關鍵字

      #!/bin/bash

      for loop in 1 2 3

      do

      for loop in 1 2 3

      do

      echo "loop=${loop}"

      break 2 #break后面可以加參數,選擇跳出的循環層次

      done

      done

      ? ?while循環示例

      (1)示例1

      #!/bin/bash

      while : #無限循環條件

      do

      sleep 1 #休眠1秒鐘

      echo "123"

      break 1 #跳出指定層次的循環

      done

      (2)示例2

      #!/bin/bash

      COUNTER=0

      while [ ${COUNTER} -lt 5 ]

      do

      COUNTER=`expr ${COUNTER} + 1`

      echo "COUNTER=${COUNTER}"

      done

      COUNTER=0

      while [ ${COUNTER} != 5 ]

      do

      COUNTER=`expr ${COUNTER} + 1`

      echo "COUNTER=${COUNTER}"

      done

      (2)示例3

      #!/bin/bash

      while read DATA

      do

      echo "DATA=${DATA}"

      done

      (3)示例4

      #!/bin/bash

      while read DATA

      do

      echo "DATA=${DATA}"

      continue #跳出當前這一次循環

      echo "1234556"

      done

      ? ?函數

      (1) ?基本示例

      #!/bin/bash

      #函數的編寫格式

      func()

      {

      echo "函數調用調用成功!"

      }

      func #調用函數不需要加()

      (2) ?嵌套調用

      #!/bin/bash

      #函數的編寫格式

      func1()

      {

      func2

      }

      func2()

      {

      echo "函數調用調用成功!"

      }

      func1 #調用函數不需要加()

      (3) ?函數的返回值

      #!/bin/bash

      #函數的編寫格式

      func()

      {

      return 255 #最大范圍是255

      }

      func #調用函數不需要加

      echo $?

      (4) ?函數的形參

      #!/bin/bash

      #函數的編寫格式

      func()

      {

      echo "$1"

      echo "$2"

      echo "$3"

      echo "$4"

      return 255 #函數返回值只能是整數,最好不要返回路徑。

      }

      func 123 456 789 dfvbfdjvbgdf

      echo $?

      ? ?調用外部腳本

      #!/bin/bash

      . 123.sh

      source 123.sh

      echo "a=${a}"

      echo "b=${b}"

      echo "c=${c}"

      ? ?Shell腳本練習

      1. ?從鍵盤上輸入年份,判斷平年閏年。

      #!/bin/bash echo -n "請輸入年份:" # -n 不換行 read year #從鍵盤上讀取年份 #能被400整除 ,能被4整除不能被100整除 if [ `expr $year % 400` == 0 ] || [ `expr $year % 4` == 0 -a `expr $year % 100` != 0 ] then echo "$year是閏年" else echo "$year是平年" fi

      2. ?輸出9*9乘法口訣表。

      3. ?冒泡排序。

      4. ?使用函數封裝判斷平年閏年

      5. ?輸出所有水仙花數(個位+十位+百位的立方和=本身)例如: 1*1*1+2*2*2+3*3*3=123

      6. ?判斷100~200之間所有的素數

      7. 寫一個腳本

      (1). 切換工作目錄至指定目錄

      (2). 依次向指定目錄中的每個文件或子目錄問好,形如:

      (提示:for FILE in /var/*;或for FILE in `ls /var`;)

      Hello,log

      (3).統計/var目錄下共有多個文件,并顯示出來

      8. 寫一個腳本, 通過ping命令測試192.168.x.0到192.168.x.254之間的所有主機是否在線

      如果在線,就顯示“在線”

      如果不在線,就顯示“離線”

      注意:ping -c1 -w1 中-c1是指ping的次數,-w是指執行的最后期限,也就是執行的時間,單位為秒

      9. 模擬linnux登錄shell

      就是輸入用戶名密碼判斷是否正確。

      10. 查找指定目錄下最大的文件,然后輸出

      11. 將指定目錄下的所有指定后綴文件,按照統一的方式命名。

      linux Shell 匯編語言

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:Py之PyTablesPyTables的簡介、安裝、使用方法詳細攻略
      下一篇:我想找梯形形狀,不是等腰梯形(不等腰的梯形叫什么梯形)
      相關文章
      亚洲一区二区三区四区视频| 亚洲av无码不卡久久| 在线视频亚洲一区| 久久久久亚洲国产AV麻豆| 亚洲国产美女精品久久久| 中文字幕在线观看亚洲视频| 亚洲中文字幕久久精品无码2021| 亚洲成年人免费网站| 亚洲喷奶水中文字幕电影| 亚洲国产情侣一区二区三区| 亚洲国产成人资源在线软件| 亚洲乱码中文字幕小综合| 亚洲国产精品综合久久久| 亚洲av永久无码精品三区在线4| 亚洲欧洲精品久久| 亚洲一区二区三区不卡在线播放| 亚洲另类古典武侠| 亚洲国产最大av| 亚洲色大网站WWW永久网站| 亚洲精品无码日韩国产不卡av| 亚洲高清国产拍精品熟女| 女bbbbxxxx另类亚洲| 区三区激情福利综合中文字幕在线一区亚洲视频1 | 亚洲熟女精品中文字幕| 一本色道久久综合亚洲精品蜜桃冫 | 亚洲国产精品一区二区第四页| 亚洲成av人片在线观看天堂无码| 亚洲A丁香五香天堂网| 亚洲国产午夜中文字幕精品黄网站| 亚洲性69影院在线观看| 亚洲精品在线网站| 精品亚洲AV无码一区二区三区| 亚洲中文字幕久久精品蜜桃| 亚洲爆乳无码专区www| 亚洲电影日韩精品 | 亚洲一区二区三区国产精品无码| 亚洲综合小说另类图片动图| 亚洲精品天堂成人片AV在线播放| 精品久久久久久亚洲综合网| 中文字幕第13亚洲另类| 亚洲综合国产精品|