這周我們主要學習了寫腳本的簡單語法,寫了一些簡單的腳本,下面就由我來簡單介紹一下:
第一步使用文本編輯來創建腳本:
創建好后在里面寫想要運行的腳本即可,然后按Esc—wq退出保存即可。也可以按q不保存退出;q!不保存強制退出;wq!保存強制退出。
第二步運行腳本,給予執行權限,在命令行上指定腳本的相對路徑和絕對路徑
對了,當在腳本里輸入內容時,要Ese—i,進入輸入模式。
bash -n f1.sh:bash編寫完腳本后我們可用:bash –n 腳本名 (對腳本進行語法測試) ,沒錯會什么也不顯示
bash -x f1.sh :顯示腳本運行的過程
變量:
查看當前進程號
pstree:進程樹
ps -ef :顯示進程信息
echo $$:查看當前進程號
echo $PPID:查看當前的父進程
echo $SHLVL:查看當前第幾級bash, bash–echo $SHLVL進入子bash;exit,顯示上一級bash,zhidao tuichu
本地變量:僅對當前SHELL有效,對子SHELL也無效
環境變量:對當前SHELL及其子SHELL均有效。
本地變量與環境變量的區別就是;本地變量對子shell無效,環境變量對子shell有效
如何查看是環境變量還是本地變量:
set:即顯示本地變量又顯示環境變量
env:只顯示本地變量
unset s :刪除變量s
.和source 只會在當前shell下執行文件,不會進入子shell
在賦值時“”時部完全轉譯
”完全轉譯
readonly name
declare -r name :設置只讀變量
readonly -p :查看進程中所有的只讀變量
位置變量:在腳本代碼中調用通過命令行傳遞給腳本的參數
$1, $2, …:對應第1、第2等參數,shift [n]換位置
$0: 命令本身
$*: 傳遞給腳本的所有參數,全部參數合為一個字符串
$@: 傳遞給腳本的所有參數,每個參數為獨立字符串
$#: 傳遞給腳本的參數的個數
$@ $* 只在被雙引號包起來的時候才會有差異
bash中的算術運算:help let
+, -, *, /, %取模(取余), **(乘方)在bc當中乘方是^
實現算術運算:
(1) let var=算術表達式
(2) var=$[算術表達式]
(3) var=$((算術表達式))
(4) var=$(expr arg1 arg2 arg3 …) 乘法時要轉譯* ,即\*
(5) declare –i var = 數值
(6) echo ‘算術表達式’
bc里的乘方只能用^;2^3
let里的乘方用**;2**3
echo $[$RANDOM%50]顯示的是0-50
與:
真與真 真
真與假 假
假與真 假
假與假 假
只要有一個假則為假
短路與 前一個為假,則不再判斷第二個值。
或
真或真 真
真或假 真
假或真 真
假或假 假
只要有一個真則為真
短路或,前一個為真,則不再判斷第二個值
補充:ROOT權限:
root權限雖然很大,但在執行的時候文件上必須有執行權限,文件所屬人,所屬組,其他人必須要有一個執行權限,之后root才能-x出來,不然root也沒辦法,以為會默認把他當成普通文件,而普通文件本身就沒辦法執行,所以權限位有了x相當于腳本了,就可以查了。
今天先總結到這里吧,剩余沒有總結完的,我課下在看看。
原創文章,作者:menger,如若轉載,請注明出處:http://www.www58058.com/84018