基於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]# 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
[
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
實驗:備份資料庫
[
#!/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
相關推薦
基於linux下的shell中常用語句(一)
常用的語句 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
從零開始搭建linux下laravel 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卡和
[轉] linux下shell中使用上下鍵翻出歷史命名時出現^[[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 下shell中exec解析
uil 當前 等等 不同的 exe inux 影響 區別 scrip exec和source都屬於bash內部命令(builtins commands),在bash下輸入man exec或man source可以查看所有的內部命令信息。 bash shell
linux 下shell中if的“-e,-d,-f”的用法
符號鏈接 符號 字符串變量 -s 長度 目錄 != filename bsp 文件表達式-e filename 如果 filename存在,則為真-d filename 如果 filename為目錄,則為真 -f filename 如果 filename為常規文件,則為真-
linux 下shell中if的“-e,-d,-f”是什麼意思
檔案表示式 -e filename 如果 filename存在,則為真 -d filename 如果 filename為目錄,則為真 -f filename 如果 filename為常規檔案,則為真 -L filename 如果 filename為符號連結,則為真 -r
linux下C語言程式設計日誌(1):基於TCP協議的伺服器/客戶端程式
基於TCP協議的伺服器/客戶端程式 首先我們看一下使用TCP協議進行網路通訊的程式基本模型:伺服器首先進行初始化操作:呼叫函式socket建立一個套接字,函式bind將這個套接字與伺服器的公認地址繫結在一起,函式listen將這個套接字換成傾聽套接字,然後呼叫函式acc
linux下shell中(())雙括號運算子的使用詳解
在剛開始學習inux shell指令碼程式設計時候,對於它的 四則運算以及邏輯運算。估計很多朋友都感覺比較難以接受。特變邏輯運算子”[]”使用時候,必須保證運算子與算數 之間有空格。 四則運算也只能藉助:let,expr等命令完成。 今天講的雙括號”(())”結構語句,
Linux下的socket程式設計實踐(四)TCP的粘包問題和常用解決方案
TCP粘包問題的產生 由於TCP協議是基於位元組流並且無邊界的傳輸協議, 因此很有可能產生粘包問題。此外,傳送方引起的粘包是由TCP協議本身造成的,TCP為提高傳輸效率,傳送方往往要收集到足夠多的資料
linux下shell中的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年向外公布。功能是通過
Linux下MySQL主從復制(二)
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 常用命令(一)