1. 程式人生 > >基於linux下的shell中常用語句(一)

基於linux下的shell中常用語句(一)

常用的語句
exit直接退出
break退出當前迴圈,不影響其他
continue跳出本層迴圈,進入下一次迴圈

[[email protected] mnt]# vim test.sh
#!/bin/bash
for NUM in {1..5}
do
        if
        [ "$NUM" -eq 3 ]
        then
                $1
        fi
        echo $NUM
done

echo hello,westos!


[[email protected] mnt]# sh test.sh
1
2
3
4
5
hello,westos!
[

[email protected] mnt]# vim test.sh
[[email protected] mnt]# sh test.sh exit
1
2
[[email protected] mnt]# sh test.sh break
1
2
hello,westos!
[[email protected] mnt]# sh test.sh continue
1
2
4
5

hello,westos!


(1)for語句
[[email protected] mnt]# vim for.sh
#!bin/bash
for NUM in `seq 1 2 10` #使用seq可以設定步長
do
        echo $NUM
done
[

[email protected] mnt]# sh for.sh
1
3
5
7
9
[[email protected] mnt]# vim for.sh
#!bin/bash
for NUM in {1..5} #相當於 `seq 1 5` , 也相當於((NUM=1;NUM<=5;NUM++))
do
        echo $NUM
done
[[email protected] mnt]# sh for.sh
1
2
3
4
5

實驗:顯示教室中可連通的網路
[[email protected] mnt]# vim check_host.sh
#!/bin/bash
for IP in `seq 0 50`
do
        ping -c1 -w1 172.25.254.$IP &> /dev/null && echo "172.25.254.$IP"
done

實驗:備份資料庫
[
[email protected]
mnt]# vim mysql_dump.sh
#!/bin/bash
DATABASE=`mysql -uroot -EN -e "show databases;"|grep -E "^\*|schema$" -v`
mkdir -p /mnt/mysql_dump
for DATABASE in $DATABASE
do
        mysqldump -uroot $DATABASE > /mnt/mysql_dump/${DATABASE}.sql
        [ "$?" -eq "0" ]&&{
                echo -e "\033[32m$DATABASE is backuped!\033[0m"
        }

done


[[email protected] mysql_backup]# sh  mysql_dump.sh
linux is backuped!
mysql is backuped!
test is backuped!

westos is backuped!


(2)while do語句
while true
do
    ***
done
實驗:當根分割槽使用量超過80%時,向root使用者傳送郵件警告
[[email protected] mnt]# vim root_check.sh
#!/bin/bash
COUNT=`df|awk -F " " '/\/$/{print $5}'|awk -F "%" '{print $1}'`
while true
do
        [ "$COUNT" -ge "80" ]&&{
                echo Your / is full!| mail -s warning root
        }
        sleep 1

done


[[email protected] ~]# mail
Heirloom Mail version 12.5 7/5/10.  Type ? for help.
"/var/spool/mail/root": 3 messages 3 new
>N  1 root                  Mon Jun 18 05:07  18/601   "warning"
 N  2 root                  Mon Jun 18 05:07  18/601   "warning"
 N  3 root                  Mon Jun 18 05:07  18/601   "warning"
& q
You have mail in /var/spool/mail/root

[[email protected] ~]# > /var/spool/mail/root #清空郵件


實驗:當根分割槽使用量超過80%時,在當前shell環境中顯示
[[email protected] mnt]# vim root_check.sh
#!/bin/bash
COUNT=`df|awk -F " " '/\/$/{print $5}'|awk -F "%" '{print $1}'`
TTY=`ps $$|awk '/bash$/{print $2}'`
while true
do
        [ "$COUNT" -ge "80" ]&&{
                echo "Your / is full!"  >  /dev/$TTY
        }
        sleep 3
done

相關推薦

基於linuxshell常用語句

常用的語句 exit直接退出 break退出當前迴圈,不影響其他 continue跳出本層迴圈,進入下一次迴圈 [[email protected] mnt]# vim test.sh #!/bin/bash for NUM in {1..5} do        

004-Linux操作目錄常用命令mkdir

刪除目錄 note 當前 目錄 name ges 否則 技術分享 mdi 1,mkdir 創建目錄 當前目錄下創建一個目錄 mkdir dir 創建含有子目錄的方式 mkdir -p dir/t11/t1

從零開始搭建linuxlaravel 5.6環境

yum acad 分享圖片 tps .html 啟動 服務 all 從零開始 首先你需要有一臺linux服務器,或者虛擬機,這裏就不贅述了,不會的可以自行百度。 我這裏準備的是一臺騰訊雲服務器,系統為CentOS 7.4 64位。 你可以使用騰訊雲的登錄按鈕登錄到服務器 也

Springboot的Controller常用註解

@Controller和@RestController和@ResponseBody @Controller @Controller註解標註類的方法,return時會被檢視處理器識別成靜態檔案的路徑。預設為templates資料夾下。如return "test/hello"表示

Linux驅動開發除錯技術

驅動程式開發的一個重大難點就是不易除錯。本文目的就是介紹驅動開發中常用的幾種直接和間接的除錯手段,它們是:     使用printk     檢視OOP訊息     使用strace     使用核心內建的hacking選項     使用ioctl方法     使用/proc 檔案系統     使用

Linux網路監控工具ntopng環境搭建

        首先,請安裝CentOS系統:https://www.centos.org/download/        安裝過程中,科普一下ntopng的“歷史”......1.ntopng是什麼?        ntopng 高速的基於Web的流量分析與集流工具。nt

linux的塊裝置驅動

塊裝置的驅動比字符裝置的難,這是因為塊裝置的驅動和核心的聯絡進一步增大,但是同時塊裝置的訪問的幾個基本結構和字元還是有相似之處的。 有一句話必須記住:對於儲存裝置(硬碟~~帶有機械的操作)而言,調整讀寫的順序作用巨大,因為讀寫連續的扇區比分離的扇區快。 但是同時:SD卡和

[轉] linuxshell使用上下鍵翻出歷史命名時出現^[[A^[[A^[[A^[[B^[[B的問題解決,Linux使用退格鍵時出現^H解決方法

XA TP brk 因此 上下 參數 csdn def 無法 [From] https://www.zmrbk.com/post-2030.html https://blog.csdn.net/suifengshiyu/article/details/40952771

Linux shellexec解析

uil 當前 等等 不同的 exe inux 影響 區別 scrip exec和source都屬於bash內部命令(builtins commands),在bash下輸入man exec或man source可以查看所有的內部命令信息。 bash shell

linux shellif的“-e,-d,-f”的用法

符號鏈接 符號 字符串變量 -s 長度 目錄 != filename bsp 文件表達式-e filename 如果 filename存在,則為真-d filename 如果 filename為目錄,則為真 -f filename 如果 filename為常規文件,則為真-

linux shellif的“-e,-d,-f”是什麼意思

檔案表示式 -e filename 如果 filename存在,則為真 -d filename 如果 filename為目錄,則為真  -f filename 如果 filename為常規檔案,則為真 -L filename 如果 filename為符號連結,則為真 -r

linuxC語言程式設計日誌1基於TCP協議的伺服器/客戶端程式

  基於TCP協議的伺服器/客戶端程式  首先我們看一下使用TCP協議進行網路通訊的程式基本模型:伺服器首先進行初始化操作:呼叫函式socket建立一個套接字,函式bind將這個套接字與伺服器的公認地址繫結在一起,函式listen將這個套接字換成傾聽套接字,然後呼叫函式acc

linuxshell(())雙括號運算子的使用詳解

在剛開始學習inux shell指令碼程式設計時候,對於它的 四則運算以及邏輯運算。估計很多朋友都感覺比較難以接受。特變邏輯運算子”[]”使用時候,必須保證運算子與算數 之間有空格。 四則運算也只能藉助:let,expr等命令完成。 今天講的雙括號”(())”結構語句,

Linux的socket程式設計實踐TCP的粘包問題和常用解決方案

TCP粘包問題的產生 由於TCP協議是基於位元組流並且無邊界的傳輸協議, 因此很有可能產生粘包問題。此外,傳送方引起的粘包是由TCP協議本身造成的,TCP為提高傳輸效率,傳送方往往要收集到足夠多的資料

linuxshell的set命令

用set命令可以設定各種shell選項或者列出shell變數.單個選項設定常用的特性.在某些選項之後-o引數將特殊特性開啟.在某些選項之後使用+o引數將關閉某些特性,不帶任何引數的set命令將顯示shell的全部變數.除非遇到非法的選項,否則set總是返回ture. 當s

Linux基礎系列:常用命令2

用戶和組 查看 -- tdi 作業二 其他 配置文件 解鎖 gid 1 作業一: 2 1) 新建用戶natasha,uid為1000,gid為555,備註信息為“master” 3 groupadd -g 555 natasha 4 useradd -u

Linux基礎系列:常用命令5_nfs服務與nginx服務

ash .com access emctl 磁盤 keepalive roo inux iptable 介紹:   NFS 是Network File System的縮寫,即網絡文件系統。一種使用於分散式文件系統的協定,由Sun公司開發,於1984年向外公布。功能是通過

LinuxMySQL主從復制

mysql 鄰居 MySQL的一主多從模式原理結構圖配置步驟1.主服務器: 1. 改變server id 2. 啟用二進制日誌文件 3. 創建具有復制的用戶123123具體操作請看:http://www.crazyrui.pw:8088/index.php/2017/07/23/linux_m

LINUX常用命令

linux 基礎 初學者 常用 侯良金 LINUX常用命令(一)一、Red hat 系統開機引導過程1、linux操作系統的引導過程一般包括以下幾個階段:開機自檢、MBR引導、GRUB菜單、加載Linux內核、init進程初始化。2、Linux系統中的進程使用數字進行標記,每個進程

Linux 常用命令

技術 alt http es2017 mage inux lin 常用命令 .cn 1. cd、pwd 2. ls 3. 文件移動等操作 4. 刪除操作 5. 特殊符號 3. \  轉義字符 6. 常用寫法 Linux 常用命令(一)