while
read line ;do
echo
$line
done
< /path/file;
test命令基本等價於
用法示例:
if test -e ./file;then
echo
true
fi
獲取表示式的值 :$(())
示例:
echo $((6%3))
輸出 0
也可以進行賦值
$((var=6%3))
echo
$var
輸出var的值
陣列定義
arr=(`ls ./`)
arr=(123
4)
陣列遍歷
arr=(123
4)for i in
$;do
echo
$idone
中只能使用-a或者-o進行與邏輯判斷,
支援&&操作符
或者
中使用問題:
1.判斷條件值需要用空格與[
隔開
2.判斷條件需要兩個值需要與邏輯判斷符用空格隔開123 == 123
,否則會一直返回true
3.if判斷的用法不僅限於 判斷
if
echo
"$word" | grep "123"
then
echo
"123"
else
echo
"not found"
fi
實現字串的拼接
1.str=st
r12.str=」st
r1str2」
chars=$(cat /etc/password)
chars 變數的值就是執行car /etc/password
的結果
$
與$
差異
asdasd=456
var1=$
echo var1 #輸出456
unset var1
var1=
var1=$
echo
$var1
# 沒有輸出資訊
當var1 宣告,但是值為null時,$
不會輸出值
賦值時需要注意
echo
$#輸出var的值為abc
echo
$#輸出var的值為abc,var的值已經賦值不會改變,也就是說對於已經賦值的變數不會改變其值
$,$
1.給變數賦值時=
兩邊不要存在空格,否則會當成命令進行執行 2.?
這個變數
儲存的是
最近的命
令的執行
結果0執
行正確其
它執行錯
誤3.@是所有的引數列表,$#為引數的個數
4.指令碼中單引號不可包含變數,雙引號字串換可以
5.多個語句寫在同一行需要用;
進行分割
6.中間的command可以賦值於變數,執行後的輸出
7. command &> filename 重定向輸出錯誤與標準輸出
1.賦值字串也可以不要引號
var1=123\ water
echo
$var1
#123 water
補充我們也可以多行輸入
echo
123\
456#123456 輸出一行
2.賦值ascii碼值
檔案相關
-e filename 如果filename存在則為真
-r filename 如果檔案存在且可讀為真
-w filename 如果檔案存在且可寫為真
-x filename 如果檔案存在可寫為真
-d filename 如果檔案存在且為目錄為真
-f filename 如果檔案存在且為普通檔案為真
字串相關
==,!= 判斷字串相等或者不等
-z 判斷字串長度為0則為真
-n 判斷字串長度不為0則為真
全域性變數
$uid
只有當值為0時,執行指令碼的許可權為root許可權
shell命令總結
顯示當前目錄 pwd 改變目錄 cd cd 目標目錄 絕對路徑 其中 目標目錄可以是 代表當前目錄 代表上一層目錄 代表前乙個工作目錄 代表 目前使用者身份 所在的家目錄 相對路徑的作用即使簡化目錄位置的編寫 比如說 你要想檢視 user1 家目錄下的d1目錄下的file1這個檔案 如果登入使用者是...
shell命令總結
1.1在linux系統中應用程式開啟終端 模擬終端 1.2在圖形化介面,按ctrl alt fn 1 6 進入虛擬終端 1.3使用遠端mobaxterm 2.為管理員使用的命令提示符 為普通使用者使用的命令提示符 3.tty 檢視登陸方式,pts 0代表是模擬終端,tty1 代表虛擬終端 echo ...
shell命令總結
nohup 不結束通話地執行命令後台執行 一般搭配nohup使用 如nohup command set set e 你寫的每個指令碼都應該在檔案開頭加上set e,這句語句告訴bash如果任何語句的執行結果不是true則應該退出。這樣的好處是防止錯誤像滾雪球般變大導致乙個致命的錯誤,而這些錯誤本應該...