shell指令碼例項解析

2021-05-27 08:47:57 字數 1923 閱讀 2239

shell指令碼例項解析,這些例項都是前輩部落格中的,小菜我拿來參考和理解。

**:1.刪除b檔案中和a檔案相同的內容;按照行為單位,下例「內容相同」的含義是

a檔案中一行正好匹配b檔案的一行,則稱為「內容相同」,於是刪除b檔案的該行

#!/bin/bash

for file in `cat a | cut -f1- d.`

do sed -i '/'$file'/ d' b

done

關於cut命令,說的很好,很易於理解。

2.根據檔案dir.list每一行的前四個字元建立二級目錄

mkdir命令的-p選項,同--parents,

需要時建立目標目錄的上層目錄,但即使這些目錄已存在也不當作錯誤處理

#!/bin/bash

for dir in `cat dir.list`

do dir1=`echo $dir | cut -c1-2`

dir2=`echo $dir | cut -c3-4`

if [ ! -d "$dir1/$dir2" ]; then

mkdir -p "$dir1/$dir2"

fidone

刪除這些剛剛建立的目錄,

!/bin/bash

for dir in `cat dir.list`

do dir1=`echo $dir|cut -c1-2`

if [ -d "$dir1" ];then

rm -r "$dir1"

fidone

dir.list檔案內容:

abcdefg

bcdefga

cdefgab

defgabc

3.檢視網絡卡流量,乙太網卡eth0,注意分析ifconfig eth0

sed的p命令是列印print,-n選項取消自動列印模式空間

date命令要注意,各種選項。

#!/bin/bash

#netflood

#ajian

while : ; do

time=`date +%m"-"%d" "%k":"%m`

echo time=$time

day=`date +%m"-"%d`

echo day=$day

rx_before=`ifconfig eth0|sed -n "9"p|awk ''|cut -d: -f2`

echo rx_before=$rx_before

tx_before=`ifconfig eth0|sed -n "9"p|awk ''|cut -d: -f2-`

echo tx_before=$tx_before

sleep 2

rx_after=`ifconfig eth0|sed -n "9"p|awk ''|cut -d: -f2`

echo rx_after=$rx_after

tx_after=`ifconfig eth0|sed -n "9"p|awk ''|cut -d: -f2`

echo tx_after=$tx_after

rx_result=$[(rx_after-rx_before)*4]

echo rx_result=$rx_result

tx_result=$[(tx_after-tx_before)*4]

echo tx_result=$tx_result

echo "$time now_in_speed: "$rx_result"bps now_out_speed: "$tx_result"bps"

sleep 2

done

shell指令碼例項

1.批量建立10個系統賬號test01 test10,並隨機設定8位數密碼 bin bash for i in seq w 10 do useradd test i echo random madsum cut c 8 tee a passwd.txt stdin test i done 2.在目錄...

Shell 指令碼例項

指令碼內容如下 bin bash action 定義函式,進行操作指南 action 1 database mysql uroot p 1 en e show databases grep e schema v mkdir p mnt sqldump e database name sql case...

Shell指令碼例項

1.寫乙個指令碼,利用迴圈計算10的階乘 bin sh factorial 1 for a in seq 1 10 dofactorial expr factorial a done echo 10 factorial 注 上面有一行,for a in seq 1 10 其中seq 1 10 即列出...