正則表達式和變量寫腳本

#!/bin/bash
檢查系統所有用戶的shell是否為bash?
注釋:用grep查找是否有此類用戶,如果有則為真,則$?必然為0;顯示的passwd結果對我們沒意義,所以重定向到空。
 grep “\bbash\b$” /etc/passwd &> /dev/null
 A=`echo $?`
   echo “such users”
   grep “\bbash\b$” /etc/passwd
 else
   echo “not such user”
 fi
 查看/etc/inittab下面有空白行,有請計算行數,否則顯示沒有。
  grep “^[[:space:]]$” /etc/inittab
  A=”echo $?”
 if [ $A -eq 0 ];then
  echo `grep “^[[:space:]]$” /etc/inittab | wc -l`
 else
  echo “no lins”
 fi
 取用戶user2的UI和GID,如果相等,則顯示good guy ,否則顯示bad guy.
   NAME=user2
   B=`id -u $NAME`
   C=`id -g $NAME`
 if [ $B -eq $C ];then
   echo “good guy”
 else
   echo “bad guy”
  fi
  檢查命令歷史數是否大于1000,大于則顯示 fill gone 否則顯示ok
   A=`history | wc -l`
   if [ $A -gt 1000 ];then
  echo “will gone”
   else
     echo “ok”
   fi
位置變量:
    例如:$1 $2 $3 $4 $5。是指變量$1 $2 $3 每個位置變量的引用就叫位置變量  
特殊變量
$?: 檢測變量命令或者腳本執行正確與否。能執行為真,則$?為0;不能執行為假,則$?為1-255之間任意數皆可。
   $#:用于計算腳本名后面的位置變量個數。
例如:給腳本傳遞三個參數(整數),顯示些兩者之及之乘積?
腳本如下:
注釋:如果傳遞參數小于3個,則提示錯誤,并提前結束腳本運行。
if [ $# -lt 3 ];then
  echo “usage is error”
exit 2
fi
注釋:計算變量$1 $2 $3 之和如下
echo “the sum is $[$1+$2-$3]”
echo “the sum is $[$1*$2-$3]”
命令行則為:bash file2.sh 3 8 5
執行結果為如下:
the sum is 6
the sum is 19

原創文章,作者:hjw2017,如若轉載,請注明出處:http://www.www58058.com/73520

(0)
hjw2017hjw2017
上一篇 2017-04-16 21:28
下一篇 2017-04-16 22:13

相關推薦

  • python練習實例

    #依次輸出五位數的每一位(由低位到高位)i=12345for a in range(5):j=i%10i=i//10print(j) #依次輸出五位數的每一位(由高位到低位)i=12345for a in range(5,0,-1):j=i//10**(a-1)i=i%10**(a-1)print(j) #打印菱形for i in range(-3,4):j…

    Linux干貨 2018-03-25
  • ?第五周作業

    1、顯示/boot/grub/grub.conf中以至少一個空白字符開頭的行; [root@localhost ~]# grep  -E "^[[:space:]]+" /boot/grub/grub.conf  root (hd0,0) kernel&nbs…

    Linux干貨 2017-02-05
  • 磁盤配額、軟RAID使用、LVM管理

    一.磁盤配額的相關知識 (1)工作原理及方式         *以文件系統為單位啟動         *以特定的用戶或組為對象       …

    Linux干貨 2016-09-06
  • bash通配符和正則表達式元字符部分歸納

    Linux中有各種各樣的字符,而且在不同環境和不同命令之下含義也不同 作為新手,決定先歸納學到的符號,方便后面學習厘清它們之間的關系。 glob 簡化了的正則表達式 bash默認通配符: ? :只匹配一個任意字符; * :匹配零個或多個任意字符;   [^] :方括號及其中^中的取反 [abc]:匹配任何一個列在方括號中的字符(這個例子要么匹配一個…

    Linux干貨 2016-04-11
  • 第五周作業

    1、顯示當前系統上root、fedora、或user1用戶的默認shell;          [root@yangjifeng~]# grep -E “^(root|fedora|user1)\>” /etc/passwd | cut -d: -f…

    Linux干貨 2017-09-04
  • Nginx+Keepalived實現站點高可用

    Nginx+Keepalived實現站點高可用 vrrp 虛擬路由冗余協議(Virtual Router Redundancy Protocol,簡稱VRRP)是由IETF提出的解決局域網中配置靜態網關出現單點失效現象的路由協議,1998年已推出正式的RFC2338協議標準。VRRP廣泛應用在邊緣網絡中,它的設計目標是支持特定情況下IP數據流量失敗轉移不會引…

    Linux干貨 2016-11-07

評論列表(1條)

  • renjin
    renjin 2017-04-21 11:48

    主要介紹了正則表達式,及bash腳本的簡單用法,建議將代碼插入到”插入程序代碼”中去,這樣的在排版上效果會好一些的!

欧美性久久久久