shell指令碼案例

2021-10-18 22:48:15 字數 4449 閱讀 3298

#! /bin/bash/

#for迴圈的使用

for num in 1 2 3 4 5 6

do echo "$num"

done

#! /bin/bash/

a=`whoami`

read -p "請輸入想要驗證的使用者名稱:" b

if [[ $b = $a ]]

then

echo "是當前使用者"

else

echo "不是當前使用者,需示警"

fi

#! /bin/bash/

n=`ls`

for name in $n

do if [[ -d $name ]]

then

b=0else

a=$(ls -l $name | awk '')

if [ $a -eq 0 ]

then

rm $name

fifidone

#! /bin/bash/

read -p "輸入第乙個引數:" a

read -p "輸入第二個引數:" b

#任意三個整數判斷最大數

echo "please enter three number:"

read -p "first:" n1

read -p "second:" n2

read -p "thirt:" n3

max=$n1

if test $n1 -lt $n2;then

max=$n2

fiif test $n1 -lt $n3;then

max=$n3

fiif test $n2 -lt $n3;then

max=$n3

fiecho "max:$max"

#! /bin/bash/

read -p "輸入第乙個引數:" a

read -p "輸入第二個引數:" b

read -p "輸入第三個引數:" c

if [ $a -gt $b ]

then

if [ $a -gt $c ]

then

echo $a

else

echo $c

fielse

if [ $b -gt $c ]

then

echo $b

else

echo $c

fifi

#! /bin/bash/

#球100以內偶數的和

let sum=0

for i in `seq 1 100`

do if [ $[$i%2] == 0 ]; then

let sum+=$i

fidone

echo $sum

#! /bin/bash

read -p "請輸入第乙個引數:" a

read -p "請輸入第二個引數:" b

function test()

test $a $b

#! /bin/bash/

#使用awk只能輸出文件行數(擷取第一段)

n=`wc -l a.txt|awk ''`

sum=0

#文當中每一行可能存在空格,因此不能直接用文件內容進行遍歷

for i in `seq 1 $n`

do #輸出的行用變數標譠時,需要用雙引號

line=`sed -n "$i"p a.txt`

#wc -l選項,統計最長行的長度

n_n=`echo $line|sed s'/[^0-9]//'g |wc -l`

echo $n_n

sum=$[$num+$n_n]

done

echo "sum:$sum"

#! /bin/bash/

#使用linux命令查詢file1中空行所在的行號

awk '/^$/' file1.txt

#! /bin/bash/

echo `basename test.txt`

echo `base name test.txt .txt`

替換

#! /bin/bash/

echo "i love you" > test.txt

追加

echo "i love you ~" >>  test.txt
#! /bin/bash/

cat test.txt | awk -f " " ' end'

#! /bin/bash/

#通過對比兩台伺服器上檔案的md5值,達到監測一致性的目的

dir = /data/web

b_ip=10.170.173.40

#將指定目錄下的檔案全部遍歷出來並作為md5sum命令的引數,進而得到所有檔案的md5值寫入到指定檔案中

find $dir -type f | xargs md5sum > /tmp/md5_a.txt

ssh $b_ip "find $dir -type f|xargs md5sum > /tmp/md5_b.txt "

scp $b_ip:/tml/md5_b.txt /tmp

#將檔名作為遍歷物件進行一一對比

for f in `awk ' /tmp/md5_a.txt'`

do#以a機器為標準,當b機器不存在遍歷物件中的檔案時,直接輸出不存在的結果

if grep -qw "$f" /tmp/md5_b.txt

then

md5_a=`grep -w "$f" /tmp/md5_a.txt|awk ''`

md5_b=`grep -w "$f" /tmp/md5_b.txt|awk ''`

#當檔案存在時,如果md5值不一致則輸出檔案改變的結果

if [ $md5_a != $md5_b ]

then

echo "$f changed."

fielse

echo "$f deleted"

fidone

#! /bin/bash/

logfile = /tmp/`date +%h-%f`.log

n=`data + %h`

if [ $n -eq 00 ] || [ $n -eq 12 ]

then

#通過for迴圈,find命令作為遍歷條件,將目標目錄下的所有檔案進行遍歷並做相應操作

shell指令碼案例賞析

bin bash 用法 rebatch.sh 截止到月份的日期 例如 rebatch.sh 2014 06 etc profile bashrc arg 1 start date 01 end date 01 count 1 cat dev null log file db2 o connect t...

shell指令碼案例(提供思路)

1 define the execution environment of the script 定義指令碼的執行環境 執行指令碼用英文 usr bin bash 2 號代表注釋 是特例 3 指令碼資訊 author tang xiaoming created time 2019 05 07 11 ...

shell指令碼案例 二 HDFS檔案定期清理

當前環境的hdfs的空間使用率,即將達到95 手動清理比較繁瑣,需要寫個指令碼定期清理下最早5天的日誌量。方法之一 定期檢查hdfs的空間佔用率,若超過95 則刪除最早5天的日誌檔案。設定使用率閾值 查詢當前使用率,若達到閾值,查詢出最早5天的檔案 將查詢到的檔案刪除 linux shell可以用f...