1. 程式人生 > 實用技巧 >Linux作業系統程式設計 實驗一 Shell程式設計

Linux作業系統程式設計 實驗一 Shell程式設計

實驗目的

按要求編寫3個指令碼。

指令碼1

編寫一段bash指令碼,滿足如下要求:
(1)指令碼接收2個整型引數,用來指定開始和結束
(2)計算並輸出從開始到結束整數間所有偶數的和

提示:
      採用for或者while迴圈
      引入區域性變數對迴圈進行計數
      引入區域性變數計算中間結果。

指令碼2

編寫一段bash指令碼,滿足如下要求:
(1)指令碼接收1個字串引數,用於指定目標路徑
(2)將目標路徑中的所有目錄名稱輸出到/tmp/dir.txt檔案中
(3)將目標路徑中的所有檔名稱輸出到/tmp/files.txt檔案中

提示:
      for filename in `ls`
      ls –F
      正則表示式匹配:if [[ $filename =~ (.*\/$) ]]
      注意每行程式碼中的空格
      採用echo輸出

指令碼3

編寫一段指令碼bash指令碼,使用awk計算score.txt中後三列的平均分,score.txt的內容如下

Marry   2143 78 84 77
Jack    2321 66 78 45
Tom     2122 48 77 71
Mike    2537 87 97 95
Bob     2415 40 57 62

實驗過程

exp01_1.sh

#!/bin/bash

read -p "please input ibegin: " begin
read -p "olease input iend: " end

i=$begin
sum=0
while [ $i -le $end  ]
do
        if [ $(($i%2)) -eq 0 ]
        then
                let sum+=i
        fi
        let i++
done
echo "sum=$sum"

exp01_2.sh

#!/bin/bash

read -p "please input a string: " path

for filename in `ls -F $path`
do
        if [[ $filename =~ (.*\/$) ]]
        then
                echo $filename >> /tmp/files.txt
        else
                echo $filename >> /tmp/dir.txt
        fi
done

exp01_3.sh

#!/bin/bash
awk '{print (($3+$4+$5)/3);}' /home/test/linux_xxxx_demo/score.txt

實驗結果

指令碼1執行結果

指令碼2執行結果

指令碼3執行結果