1. 程式人生 > >grep、正則、if、bash條件測試、vi

grep、正則、if、bash條件測試、vi

grep if bash條件測試 vim

grep [optinos] "pattern" file...
基本:
字符匹配:.,[][^]
次數匹配:,\?,{m},{m,n}
位置錨定:\<,\b,\>,^,$
分組:()
前向引用:\1,\2
擴展:
字符匹配:.,[][^]
次數匹配:
,?,{m},{m,n},+
位置錨定:\<,\b,\>,^,$
分組:()
前向引用:\1,\2
或a|b
條件判斷
if condition;then
statement1
....
fi
if condition;then
分支1;
else
分支2;
fi
if condition;then
分支1;
elif condition;then
分支2;
...
else
分支n;
fi
條件測試:
bash :每個命令,執行狀態都有返回值
? 成功:0
? 失敗:非0
$?:echo $?腳本的狀態返回值,腳本執行的最後一條命令;
exit [n]:自定義腳本狀態返回值
command,$(command):引用命令的執行結果
? 引用命令執行成功與否的狀態結果:一定是直接執行命令。此時,通常需要將執行結果重定向至/dev/null
條件測試:
test 測試表達式
[ 測試表達式 ]
[[ ]]:bash中的關鍵字
bash的知識點:
組合條件測試:對條件做邏輯運算
與:條件1 && 條件2,隱藏條件,如果條件1為真,則執行條件2;
條件1為假,則最終結果一定為假,否則,條件2不予執行
條件1為真,則最終條件結果決於後面條件,因此,條件2必須執行
或:條件1 || 條件2,隱藏條件,如果條件1為假,則執行條件2;
條件1為真,則最終結果一定為真,否則,條件2不予執行
條件1為假,則最終條件結果決於後面條件,因此,條件2必須執行
非: ! 條件;
與的優先級大於或,或的優先級大於非
bash編程之:字符測試,一般加引號
雙目:

: 大於
< :小於
==:等於,等值比較
=~:左側是字符串,右側是一個模式,判斷左側的字符串能否被右側的模式所匹配:通常只在[[]]中使用
模式中可以使用行首、行尾錨定符,但是模式不要加引號
判定字符串是否滿足需求

!=, <>: 不等於
單目:
-n 字符串: 字符串是否不空,不空為真,空則為假
-z 字符串:字符串是否為空,空則為真,不空則假:

[ "stringA" == "stringB" ] 變量帶引號,若變量為null,則不帶引號會報錯;

read -p "please input usename :" username
if ! grep ^$username/> /etc/passwd &> /dev/null;then
exit 7
elif
[[ grep ^$username/&gt; /etc/passwd |cut -d:-f7 =~ /bin/shell ]];then
echo "bash user"
exit 0
else
echo "not bash user"
exit 1
vi 編輯器
Linux:使用文本文件來保存配置文件
文本編輯器:ASCII文件
emacs vi
vi:Visual Interface
全屏文本編輯,nano
模式化的編輯器
moduler
vim :vi improved
vi的模式:
編輯模式:鍵盤操作通常被解析為編輯命令:
輸入模式:
末行模式:vim的內置的命令行接口,執行vim內置命令
編輯模式-->輸入模式
i:當前光標處輸入內容
I:在當前光標所在行的行首
a:在當前光標所在處的後面
A:在當前光標所在行的行尾輸入
o:在光標所在行的下方新增一行空白行
O:在光標所在行的上方新增一行空白行

輸入模式-->編輯模式
ESC

grep、正則、if、bash條件測試、vi