1. 程式人生 > >shell學習筆記(一):for迴圈、if語句、萬用字元、命令代換、引號

shell學習筆記(一):for迴圈、if語句、萬用字元、命令代換、引號

一、for迴圈

for 變數in列表

do

command1

command2

......

done

例1:vim test.sh

#! /bin/bash

for str in name.list

do

echo $str

done

例2:vim tesh.sh

#! /bin/bash 

for((i=0;i<10;i++))

do

echo $i

done

例3:vim test.sh

#! /bin/bash

array=(a b c d 1 2 3)

for i in ${array[*]}

do 

echo $i 

done

二、if語句

1、shell的if判斷是0 為真,走then語句,與c語言(非零為真)相反。

if [條件表示式]

then

command1

else

command2

......

fi

2、條件表示式:

(1)檔案表示式

if [-f file] 如果檔案存在

if [-d dir] 如果資料夾存在

if [-s file] 如果檔案存在且非空

if [-r file] 如果檔案存在且可讀

if [-w file] 如果檔案存在且可寫

if [-x file] 如果檔案存在且可執行

(2)整數變量表達式

if [ int1 -eq int2 ]     如果int1等於int2   
if [ int1 -ne int2 ]     如果不等於    
if [ int1 -ge int2 ]     如果>=
if [ int1 -gt int2 ]      如果>
if [ int1 -le int2 ]      如果<=
if [ int1 -lt int2 ]       如果<

(3)字串變量表達式( 字串允許使用賦值號做等號)

If  [ $string1 = $string2]       如果string1等於string2
if  [ $string1 !=  $string2 ]    如果string1不等於string2       
if  [ -n $string  ]                      如果string 非空(非0)  
if  [ -z $string  ]                       如果string 為空
if  [ $sting ]                             如果string 非空(和-n類似)   

例1:vim test_if.sh

#! /bin/sh
rsync -avzP --delete /var/tmp/Control /backup/Control_bak/
if [ $? -eq 0 ]
then
echo 'rsync successful !!!'
else
echo 'faild'
fi
三、萬用字元、命令代換、單雙引號

1、萬用字元

(1)* :匹配多個任意字元

(2)? :匹配一個任意字元

(3)[若干字元] :匹配方括號中任意一個字元的一次出現

2、命令代換:反引號``或者$()

例1:vim test_th.sh

#! /bin/bash
DATE=`date`
LL=$(ls -al)
echo $DATE
echo $LL

3、單引號''(保持字面值)和雙引號""(可處理字串中的特殊字元)

例1:vim test.sh

#! /bin/bash

echo '`date`' echo "`date`" echo '\\' echo "\\"


[[email protected] test-find]$ ./test.sh 
`date`
2017年 04月 17日 星期一 17:26:05 CST
\\
\

4、字串與數值之間的轉換與計算

例1:vim test.sh

#! /bin/bash

svnci=`svn log -r {$TodayDirName}:{$Weeksago} |grep line |wc -l` svncou=$(($svnci-1))

雙括號取值


相關推薦

shell學習筆記for迴圈if語句字元命令代換引號

一、for迴圈for 變數in列表docommand1command2......done例1:vim test.sh#! /bin/bashfor str in name.listdoecho $strdone例2:vim tesh.sh#! /bin/bash for((

MongoDB 學習筆記安裝及簡單shell操作

一、說明 1、該系列MongoDB學習筆記的學習環境採用的MongoDB版本為mongodb-win32-i386-2.4.6,作業系統為win7。 二、安裝 1、新建兩個目錄,分別是D:\Installations\MongoDB-2.4.6\MongoDB和D:\Ins

Java for Web學習筆記Java EE的介紹

  最近有個專案,當中涉及到Java Servlet,專案已經進行了一段日子,最近因為有重大需求調整,需要對架構重新進行梳理,一看,基本上哭笑不得,有不少地方真是黑色幽默,怎麼會這樣呢。   當在這過程中,也引發了我興趣,畢竟之前沒有系統地瞭解過。在網上找到了一本書professional Java for

HLSL學習筆記基礎

pad ddx 做了 cto har 分割 with 圖形 content http://www.cnblogs.com/rainstorm/archive/2013/05/04/3057444.html 前言 五一在家無事,於是學習了一下HLSL,基於XAN4.0的。學習

EF6 學習筆記Code First 方式生成數據庫及初始化數據庫實際操作

view sqlserver 4.5 xpl 安裝 右鍵 ef6 字符串 ref 參考原文地址: https://docs.microsoft.com/en-us/aspnet/mvc/overview/getting-started/getting-started-wit

Servlet學習筆記生命周期

磁盤 停止 生命 第一個 每一個 clas 瀏覽器 doget des 一、Servlet 生命周期:   Servlet 生命周期可被定義為從創建直到毀滅的整個過程。以下是 Servlet 遵循的過程:初始化——響應請求——終止——回收 Servlet 通過調用 in

JSP學習筆記JSP語法和指令

沒有 文件的 encoding 引入 2.0 .cn name blog .get 一、語法 1、腳本程序的語法格式:   腳本程序可以包含任意量的Java語句、變量、方法或表達式,只要它們在腳本語言中是有效的。 <% 代碼片段 %> 2、中文編碼問題   

C#可擴展編程之MEF學習筆記MEF簡介及簡單的Demo

com ring this exec hosting code .cn 引用 展開 在文章開始之前,首先簡單介紹一下什麽是MEF,MEF,全稱Managed Extensibility Framework(托管可擴展框架)。單從名字我們不難發現:MEF是專門致力於解決擴展性

bash shell學習筆記—— 常用命令

排序 class $@ 幫助 row 自動 from quic 方式 一、基本的bash shell命令 1、默認bash shell 提示符是美元符號($); 2、bash手冊   使用man命令來訪問存儲在Linux系統上的手冊頁面,如: bogon:~ Mac$

《機器學習學習筆記線性回歸邏輯回歸

ros XA andrew ID learn 給定 編程練習 size func 《機器學習》學習筆記(一):線性回歸、邏輯回歸 本筆記主要記錄學習《機器學習》的總結體會。如有理解不到位的地方,歡迎大家指出,我會努力改正。 在學習《機器學習》時,我主要是

算法學習筆記插入排序和線性查找

插入排序 算法學習 AS 獲取 ear array import 右移 創建 (一)插入排序 看下面這張圖片:把打牌時手上的牌抽象為一個列表A,j表示當前最新抓的牌的索引(先放到手上最右邊) 索引 j =0 時 A[j] = 3 j >= 1時, 1、我們拿到

Django學習筆記環境安裝與簡單實例

rom dex ftime not host 名稱 本機 turn perl Django學習筆記(一):環境安裝與簡單實例 通過本文章實現: Django在Windows中的環境安裝 Django項目的建立並編寫簡單的網頁,顯示歡迎語與當前時間 一、環境安裝 結合版

深度學習學習筆記logistic regression與Gradient descent 2018.9.16

寫在開頭:這是本人學習吳恩達在網易雲課堂上的深度學習系列課程的學習筆記,僅供參考,歡迎交流學習! 一,先介紹了logistic regression,邏輯迴歸就是根據輸入預測一個值,這個值可能是0或者1,其影象是一條s形曲線,由預測值與真實值的差距計算出loss function損失函式和cos

Javaweb學習筆記Servlet常見問題

1. 在server.xml中設定context路徑,如果Path值為“”,則可以訪問自己的頁面,無法訪問Tomcat主頁 2. 同樣的context路徑,path為空,卻啟動toncat失敗     解決:原因是有兩個相同的path路徑,空字元算相同的路徑 path=“”

javaweb學習筆記web入門簡介tomcat

目錄 1.web入門 2.tomcat 2.1 Tomcat的安裝與使用 2.2 Tomcat的目錄結構 2.3 Web應用的目錄結構 1.web入門 B/S (Broswer -Server 瀏覽器端- 伺服器端)架構,其典型應用就是各種網站。它的特點是第一,不

機器學習筆記最小二乘法和梯度下降

一、最小二乘法 1.一元線性擬合的最小二乘法 先選取最為簡單的一元線性函式擬合助於我們理解最小二乘法的原理。 要讓一條直接最好的擬合紅色的資料點,那麼我們希望每個點到直線的殘差都最小。 設擬合直線為

學習筆記使用K近鄰演算法檢測web異常操作

黑客入侵Web伺服器後,通常會通過系統漏洞進一步提權,獲得ROOT許可權。我們可以通過蒐集LINUX伺服器的bash操作日誌,通過訓練識別出特定使用者的操作習慣,然後進一步識別出異常操作的行為。 1.資料蒐集        訓練集包括50個使用者的操作

LCD實驗學習筆記Makefile

主Makefile總領全域性的就這句—— lcd.bin: $(objs) 要生成lcd.bin,依賴於objs列舉的一堆檔案:head.o init.o nand.o interrupt.o serial.o lcddrv.o framebuffer.o lcdlib.o main.o l

Spring AOP學習筆記基礎概念

AOP產生背景 AOP(Aspect Oriented Programming),即面向切面程式設計,可以說是OOP(Object Oriented Programming,面向物件程式設計)的補充和完善。OOP引入封裝、繼承、多型等概念來建立一種物件層次結構,用於模擬公共行為的一個集合。不

資料庫連線池學習筆記原理介紹+常用連線池介紹

什麼是連線池 資料庫連線池負責分配、管理和釋放資料庫連線,它允許應用程式重複使用一個現有的資料庫連線,而不是再重新建立一個。 為什麼要使用連線池  資料庫連線是一種關鍵的有限的昂貴的資源,這一點在多使用者的網頁應用程式中體現得尤為突出。  一個數據庫連線物件均對應