第11章:Shell编程
生活随笔
收集整理的這篇文章主要介紹了
第11章:Shell编程
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、正則表達式:
例子:
二、字符截取命令
1、cut 選項 文件名 cut進行列提取-f 提取第幾列 -d 按照指定的分隔符分隔列 注意:上面的studebt.txt中的間隔不是“空格”,而是制表符“Tab”。 cut -f 2,4 studebt.txt cut -d ":" -f 2,3 /etc/passwd 案例:假設我想刪除當前Linux系統下的除了root外的所有可以登錄的普通用戶,(所有可以登錄的普通用戶/bin/bash):(1)先提取出來所有普通用戶的用戶名 cat /etc/passwd | grep "/bin/bash" | grep -v root | cut -d ":" -f 1 (2)再把提取出來的用戶的用戶名賦值給一個變量,用循環的方式一個一個刪除。注:cut命令只能識別制表符Tab,逗號,冒號等作為間隔符的列,不能識別空格作為間隔符的列,--->因此cut符具有局限性,從而引出awk。2、printf 格式化輸出命令 printf "輸出類型輸出格式" 輸出內容%ns 字符串%ni 整數%m.nf 浮點數下面介紹幾個案例:
上圖,注: $2表示第2列;\r回車 ; \t Tab ; \n換行
三、字符處理命令
1.排序命令sortsort 選項 文件名 選項:-f 忽略大小寫 -n 以數值排序,默認以字符串 -r 反向排序 -t 指定分隔符,默認以Tab為分隔符 2.wc 選項 文件名 統計命令 選項:-l 行數 -w 單詞數 -m 字符數條件判斷
四、流程控制語句
(一)控制語句-if語句
(二)控制語句-case語句
case $變量名 in"值1")執行程序1"值2")執行程序2......*)如果以上條件不成立,執行此程序 esac(三)流程控制-for循環
語法一:for 變量 in 值1 值2 值3do 程序done 例1:#!/bin/bashfor time in morning noon afternoon eceningdoecho "This is $time"done 例2:批量解壓縮cd /lampls *.tar.gz>ls.logfor i in $(cat ls.log)dotar -zxf$i&>/dec/nulldone 語法二:for ((初始值;循環控制條件;變量變化))do程序done 例:批量添加指定數量的用戶#!/bin/bashread -p "請輸入用戶數量:" -t 30 numread -p "請輸入用戶名字:" -t 30 nameread -p "請輸入用戶密碼:" -t 30 pass if[ ! -z "$name" -a ! -z "$name" -a ! -z "$pass"]theny=$(echo $num|sed 's/^[0-9]*$//g') if [ -z "$y" ] 判斷輸入的num是否為數字thenfor((i=1;i<$num;i=i+1))do/usr/sbin/useradd $name$i&>/dev/nullecho $pass|/usr/bin/passwd -- stdin $name$i &>/dev/nulldonefifi(四)while循環和until循環
1、 while [ 條件判斷式 ]do程序done 2、 until 只要條件不成立,則一直循環;當條件成立時,循環終止。 until [ 條件判斷式 ]do程序done總結
以上是生活随笔為你收集整理的第11章:Shell编程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 第10章:Shell基础
- 下一篇: 第13章:进程管理