其他:
grep
fgrep 不適用真正表示式,速度塊
面向過程:著眼點在過程中
物件導向:物件
shell指令碼程式設計:
父shell賦予的變數 在子shell中是無法獲取到的
變數賦值: name=jerry
變數的引用:$name 也可以使用$ 大多數情況下{}是可以使用的
animal=pig
echo "there are some $s"
echo 'there are some $s' 單引用叫做強引用 雙引號弱引用
本地變數
name=value(生命週期,整個bash)
區域性變數
local varname=value 作用域 當前**段
環境變數: 作用域 當前shell程序及其子程序
export varname=value
指令碼在執行時,會啟動乙個子shell程序,所以當前指令碼申明的環境變數是有用的
命令航中啟動指令碼會整合當前shell環境變數
系統自動執行的指令碼(非命令列啟動)就需要自我定義環境變數
位置變數
$1,$2
特殊變數:
$?:上乙個命令執行狀態返回值:
程式執行:可能有兩個返回值 執行狀態返回**:0成功,1-255失敗 (1,2,127系統預留,不能隨便定義)
輸出重定向:
2>
2>>
/dev/null 裝置,軟體裝置,bit bucket 作用:不顯示內容,吞噬任何輸出 用於消除不想顯示的輸出
unset name 取消變數 消除變數所佔的記憶體gc
檢視當前shell的變數
set檢視當前shell的環境變數
printenv
envexport
指令碼:命令的堆砌
條件比較判斷
if[ expression ]
if[ [ expression ] ]
test expression
整數比較:
-eq 測試兩個整數是否相等 比如$a -eq $b 表示式的返回值是0 或者1-255
-ne 測試兩個整數是否不等: 不等,為真,不等為假
-gt 測試乙個數是否大於另外乙個數
-lt 測試乙個數是否小於另外乙個數
-ge 大於後者等於
-le 小於或等於
! id user6 && useradd user6 使用者不存在時,新增使用者user6
反引號``
demo:
#!/bin/bash
! id user1 &> /dev/null && useradd user1 && echo "user1" | passwd --stdin user1 &> /dev/null || echo "user1 exits"
users=`wc -l /etc/passwd | cut -d: -f1`
echo "$users users"7
作用是。如果user1不存在 則新增使用者user1並且設定密碼為user1 否則則顯示user1 exits 。並且顯示user數目
指令碼中一大堆的&& || 怎麼運算。從左往右看,乙個表示式乙個表示式看,true && expr1 ,expr1才會執行 ,false || expr1 ,expr1才會執行
if 判斷條件; then
statement
statement
fiif 判斷條件; then
statement1
statement2
else
statement3
fi反引號 獲取執行的結果
不寫的話一般是獲取命令的執行狀態返回值
date +%s
shell 中的加減乘除
let c=$a+$b
c=$[$a+$b]
c=$(($a+$b))
c='expr $a + $b'
提前結束指令碼命令 exit; exit是可以返回自定義的指令碼 狀態碼
exit 0
檔案測試
檔案存在 -e file
檔案檔案是否普通檔案 -f file
測試是否是目錄 -d path
-r-w
-x[ -e /etc/inittab ]
測試叫本是否有語法錯誤
bash -x 指令碼
$# 多少個引數
$?引數列表
$*引數列表
位置引數
shift $1 $2
shift 剔除引數
字串比較
== 相等
!=不等
-n string 測試字串是否為空 ,空則真
-s string 與上述相反
指令碼用的一些東西
bin=`dirname "$"`
bin=`cd "$bin"; pwd`
Shell指令碼語法
定義單變數 p name kang 使用單變數 echo p name js 輸出kang.js echo p name.js 輸出kang.js cp p name.js copy.js 命令1 命令2 如果左邊的 命令1 執行成功,那麼右邊的 命令2 才會被執行。命令1 命令2 與 相反。如果 ...
shell指令碼 語法
條件測試 test 命令test 可以測試乙個條件是否成立,如果測試條件為真,則該命令的exitstatus為0,反之,exitstatus為1。注意 命令 各引數之間應該用空格隔開,以 結尾。但是 不是命令。測試命令 d dir 如果dir存在並且是乙個目錄則為真 f file 如果file存在並...
shell指令碼語法
測試乙個條件是否成立,python ubuntu 1004 var 2 python ubuntu 1004 test var python ubuntu 1004 echo 0python ubuntu 1004 test var gt 5 python ubuntu 1004 echo 1或者 ...