- shall編程第一行
第一行制定了執行該腳本所用的語言
#!/bin/bash
- 定義變量
- 等號兩邊不能有空格
- 單引號表示字符串,雙引號表示特殊含義
- 變量可以用雙引號引起來,主要是爲了區分變量的邊界
#!/bin/bash
name='xul_test'
echo $name
基本的重定向
- 輸出
將標準輸出,輸出到當前文件夾下的test.t文件
- 輸出
ls /usr/local > ./test.t //覆蓋寫
ls /usr/local >> ./test.t //已追加的形式輸出
- 輸入
將標準輸入改爲從文件輸入
- 管道
ls /usr/local | grep bin
// -i 忽略大小寫是
ls /usr/local | grep BIN
// -V 顯示不匹配的行
ls /usr/local | grep -v bin
//-n 列出目標所在的行號
ls /usr/local | grep -n bin
//-c 列出匹配所在的總行數
ls /usr/local | grep -c bin
shell中的特殊字符
shell 中的通配符:
*: 代表 0 個或者多個任意字符
?: 代表一定有一個的任意字符
[]: 代表一定有一個在括號內的字符(非任意字符)。例如[abcd]代表一定有一個字符,可能是 abcd 這四個選項的任意一個。
[-]:若郵件韓在括號內時,代表在編碼順序內的所有自負。例如:[0-9]代表 0 到 9 之間的所有數字,因爲數字的語系編碼是連續的。
[^]: 若括號內的第一個字符爲指數字符(^),那表示反向選擇,例如:[^abc]代表一定有一個字符,只要是非 abc 的其他字符就可以。shell中的特殊字符:
#:註釋字符
**:將特殊字符或者通配符還原成一般字符
|:管道符,分割兩個管線命令的界定
;:連續命令下達分隔符
~:用戶的家目錄
$:放在變量前面,正確使用變量
&:工作控制,將命令編程背景下工作
!:非(!)的意思,邏輯運算符
>,>>:輸出重定向,分別是覆蓋和追加
<,<<:輸入重定向
‘’:單引號,不具有變量置換的功能
“”:雙引號,具有變量置換的功能
():在中間的爲子 shell 的起始與結束
{}:在中間爲命令塊的組合shell 中正則表達式的控制字符
^:匹配行首位置
$:匹配行尾位置
.:匹配任意祖父
:對之前的匹配整體或字符匹配任意次(包括 0 次)
\?:對\?之前的匹配整體或字符匹配 0 次或 1 次
{n}: 對 \ { 之前的匹配整體或字符匹配 n 次
{m,}: 對 \ { 之前的匹配整體或字符匹配至少 m 次
{m,n}: 對 \ { 之前的匹配整體或字符匹配 m 到 n 次
[abcdef]: 對單字符而言匹配[]中的字符
[a-z]: 對單字符而言,匹配任意一個小寫字母
[^a-z]:不匹配括號中的內容