最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

8個(gè)實(shí)用的Shell腳本分享

 更新時(shí)間:2015年06月02日 16:11:53   投稿:junjie  
這篇文章主要介紹了8個(gè)實(shí)用的Shell腳本分享,本文給出了判斷輸入為數(shù)字、字符或其他、求平均數(shù)、自減輸出、在文件中添加前綴、批量測試文件是否存在等實(shí)用腳本,需要的朋友可以參考下

幾個(gè)Shell腳本的例子,覺得還不錯(cuò)。

【例子:001】判斷輸入為數(shù)字,字符或其他

復(fù)制代碼 代碼如下:

#!/bin/bash 
read -p "Enter a number or string here:" input 
 
case $input in 
   [0-9]) echo -e "Good job, Your input is a numberic! \n" ;; 
[a-zA-Z]) echo -e "Good job, Your input is a character! \n" ;; 
       *) echo -e "Your input is wrong, input again!   \n"  ;; 
esac 

【例子:002】求平均數(shù)
復(fù)制代碼 代碼如下:

#!/bin/bash 
 
# Calculate the average of a series of numbers. 
 
SCORE="0" 
AVERAGE="0" 
SUM="0" 
NUM="0" 
 
while true; do 
 
  echo -n "Enter your score [0-100%] ('q' for quit): "; read SCORE; 
 
  if (("$SCORE" < "0"))  || (("$SCORE" > "100")); then 
    echo "Be serious.  Common, try again: " 
  elif [ "$SCORE" == "q" ]; then 
    echo "Average rating: $AVERAGE%." 
    break 
  else 
    SUM=$[$SUM + $SCORE] 
    NUM=$[$NUM + 1] 
    AVERAGE=$[$SUM / $NUM] 
  fi 
 
done 
 
echo "Exiting." 

【例子:003】自減輸出
復(fù)制代碼 代碼如下:

[scriptname: doit.sh] 
while (( $# > 0 )) 
do 
  echo $* 
  shift 
done  
         
/> ./doit.sh a b c d e 
a b c d e 
b c d e 
c d e 
d e 


【例子:004】在文件中添加前綴
復(fù)制代碼 代碼如下:

# 人名列表 
# cat namelist 
Jame 
Bob 
Tom 
Jerry 
Sherry 
Alice 
John 
 
# 腳本程序 
# cat namelist.sh 
#!/bin/bash 
for name in $(cat namelist) 
do 
        echo "name= " $name 
done 
echo "The name is out of namelist file" 
 
# 輸出結(jié)果 
# ./namelist.sh 
name=  Jame 
name=  Bob 
name=  Tom 
name=  Jerry 
name=  Sherry 
name=  Alice 
name=  John 

【例子:005】批量測試文件是否存在

復(fù)制代碼 代碼如下:

[root@host ~]# cat testfile.sh       
#!/bin/bash 
 
 
for file in test*.sh 
do 
  if [ -f $file ];then 
     echo "$file existed." 
  fi 
done 
 
[root@host ~]# ./testfile.sh 
test.sh existed. 
test1.sh existed. 
test2.sh existed. 
test3.sh existed. 
test4.sh existed. 
test5.sh existed. 
test78.sh existed. 
test_dev_null.sh existed. 
testfile.sh existed. 

【例子:005】用指定大小文件填充硬盤
復(fù)制代碼 代碼如下:

[root@host ~]# df -ih /tmp 
Filesystem            Inodes   IUsed   IFree IUse% Mounted on 
/dev/mapper/vg00-lvol5 
                       1000K    3.8K    997K    1% /tmp 
[root@host ~]# cat cover_disk.sh 
#!/bin/env bash 
counter=0 
max=3800 
remainder=0 
while true 
do 
    ((counter=counter+1)) 
    if [ ${#counter} -gt $max ];then 
        break 
    fi 
    ((remainder=counter%1000)) 
    if [ $remainder -eq 0 ];then 
        echo -e "counter=$counter\tdate=" $(date) 
    fi 
    mkdir -p /tmp/temp 
    cat < testfile > "/tmp/temp/myfile.$counter" 
    if [ $? -ne 0 ];then 
        echo "Failed to write file to Disk." 
        exit 1 
    fi 
done 
echo "Done!" 
[root@host ~]# ./cover_disk.sh 
counter=1000    date= Wed Sep 10 09:20:39 HKT 2014 
counter=2000    date= Wed Sep 10 09:20:48 HKT 2014 
counter=3000    date= Wed Sep 10 09:20:56 HKT 2014 
cat: write error: No space left on device 
Failed to write file to Disk. 
dd if=/dev/zero of=testfile bs=1M count=1 

【例子:006】通過遍歷的方法讀取配置文件
復(fù)制代碼 代碼如下:

[root@host ~]# cat hosts.allow 
127.0.0.1 
127.0.0.2 
127.0.0.3 
127.0.0.4 
127.0.0.5 
127.0.0.6 
127.0.0.7 
127.0.0.8 
127.0.0.9 
[root@host ~]# cat readlines.sh 
#!/bin/env bash 
i=0 
while read LINE;do 
    hosts_allow[$i]=$LINE 
    ((i++)) 
done < hosts.allow 
for ((i=1;i<=${#hosts_allow[@]};i++)); do 
    echo ${hosts_allow[$i]} 
done 
echo "Done" 
[root@host ~]# ./readlines.sh 
127.0.0.2 
127.0.0.3 
127.0.0.4 
127.0.0.5 
127.0.0.6 
127.0.0.7 
127.0.0.8 
127.0.0.9 
Done 

【例子:007】簡單正則表達(dá)式應(yīng)用
復(fù)制代碼 代碼如下:

[root@host ~]# cat regex.sh 
#!/bin/env sh 
#Filename: regex.sh 
regex="[A-Za-z0-9]{6}" 
if [[ $1 =~ $regex ]] 
then 
  num=$1 
  echo $num 
else 
  echo "Invalid entry" 
  exit 1 
fi 
[root@host ~]# ./regex.sh 123abc 
123abc 
 
#!/bin/env bash 
#Filename: validint.sh 
validint(){ 
    ret=`echo $1 | awk '{start = match($1,/^-?[0-9]+$/);if (start == 0) print "1";else print "0"}'` 
    return $ret 

 
validint $1 
 
if [ $? -ne 0 ]; then 
    echo "Wrong Entry" 
    exit 1 
else 
    echo "OK! Input number is:" $1 
fi 

【例子:008】簡單的按日期備份文件
復(fù)制代碼 代碼如下:

#!/bin/bash 
 
NOW=$(date +"%m-%d-%Y")      # 當(dāng)前日期 
FILE="backup.$NOW.tar.gz"    # 備份文件 
echo "Backing up data to /tmp/backup.$NOW.tar.gz file, please wait..."  #打印信息 
tar xcvf /tmp/backup.$NOW.tar.gz /home/ /etc/ /var       # 同時(shí)備份多個(gè)文件到指定的tar壓縮文件中 
echo "Done..."          

相關(guān)文章

  • Linux?shell進(jìn)行文件解壓,復(fù)制和移動(dòng)詳解

    Linux?shell進(jìn)行文件解壓,復(fù)制和移動(dòng)詳解

    Linux下進(jìn)行文件的解壓、復(fù)制、移動(dòng)應(yīng)該是最常見的操作了。尤其是我們在項(xiàng)目中使用大量的數(shù)據(jù)集文件時(shí)。本文我們就來細(xì)數(shù)用Shell進(jìn)行文件操作的這些坑
    2022-05-05
  • Shell用sed命令刪除特定行的方法

    Shell用sed命令刪除特定行的方法

    這篇文章主要介紹了Shell用sed命令刪除特定行的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • linux生成(加載)動(dòng)態(tài)庫靜態(tài)庫和加載示例方法

    linux生成(加載)動(dòng)態(tài)庫靜態(tài)庫和加載示例方法

    這篇文章主要介紹了linux生成(加載)動(dòng)態(tài)庫靜態(tài)庫示例方法,大家參考使用
    2013-11-11
  • Vim 編輯器操作匯總

    Vim 編輯器操作匯總

    本文是小編給大家收藏整理的關(guān)于vim編輯器操作方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧
    2018-05-05
  • 用git打更新包的辦法分享

    用git打更新包的辦法分享

    Git是一款免費(fèi)、開源的分布式版本控制系統(tǒng),想信很多人也用過或者接觸過,這篇文章為大家介紹下如何利用git來打更新包,有需要的可以參考借鑒。
    2016-08-08
  • linux 中的atq命令

    linux 中的atq命令

    atq命令顯示系統(tǒng)中待執(zhí)行的任務(wù)列表,也就是列出當(dāng)前用戶的at任務(wù)列表。下面通過本文給大家分享linux 中的atq命令,感興趣的朋友一起看看吧
    2017-09-09
  • shell腳本實(shí)現(xiàn)統(tǒng)計(jì)文件大小、批量創(chuàng)建用戶的示例

    shell腳本實(shí)現(xiàn)統(tǒng)計(jì)文件大小、批量創(chuàng)建用戶的示例

    這篇文章主要介紹了shell腳本實(shí)現(xiàn)統(tǒng)計(jì)文件大小、批量創(chuàng)建用戶的示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • linux 環(huán)境 mysql寫入中文報(bào)錯(cuò)

    linux 環(huán)境 mysql寫入中文報(bào)錯(cuò)

    本篇文章主要介紹了linux 環(huán)境 mysql寫入中文報(bào)錯(cuò)的相關(guān)知識(shí)。具有很好的參考價(jià)值。下面跟著小編一起來看下吧
    2017-04-04
  • NetCat工具命令介紹及遠(yuǎn)程文件傳輸實(shí)現(xiàn)

    NetCat工具命令介紹及遠(yuǎn)程文件傳輸實(shí)現(xiàn)

    這篇文章主要為大家介紹了NetCat工具命令的介紹以及遠(yuǎn)程文件傳輸實(shí)現(xiàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-03-03
  • 詳解Linux命令中的正則表達(dá)式

    詳解Linux命令中的正則表達(dá)式

    正則表達(dá)式是一套由多個(gè)元字符組成的模糊查找模式,使用正則表達(dá)式可以快速查找和定位文本中指定的內(nèi)容。接下來通過本文給大家介紹Linux命令中的正則表達(dá)式,需要的朋友參考下吧
    2017-02-02

最新評論

昂仁县| 韩城市| 迁安市| 姚安县| 海门市| 雅安市| 怀仁县| 扎兰屯市| 株洲市| 万盛区| 历史| 靖安县| 铅山县| 张家界市| 美姑县| 乌鲁木齐市| 湾仔区| 耿马| 安康市| 任丘市| 花莲市| 隆昌县| 普兰县| 兴山县| 克什克腾旗| 兴化市| 五常市| 延长县| 庆阳市| 临泽县| 金寨县| 文水县| 林周县| 织金县| 开原市| 广元市| 漠河县| 个旧市| 通城县| 桓仁| 建始县|