1.shell指令碼的基礎:
shell指令碼是基本命令的組合,結合命令流程控制。
第一行(頂格寫):#! /bin/bash
shell指令碼的執行方式:(1)首先要使指令碼具有執行許可權: chmod +x test.sh 然後./test.sh執行指令碼
(2)bin/sh test.sh
2.shell指令碼中變數型別:本地變數(區域性變數)、環境變數、位置變數、特殊變數
(1)本地變數(區域性變數):本地整個bash程序都可以使用,僅對當前**段有用,其他shell啟動的程式不能訪問區域性變數
(2)環境變數:作用域為當前shell進行及其子程序,命令列中啟動的指令碼會繼承當前shell環境變數,系統自動執行的指令碼(非命令列啟動)就需要自我定義需要的環境變數
(3)位置變數:$1,$2,用來傳遞引數
$ chmod +x test.sh
$ ./test.sh 1 2 3
shell 傳遞引數例項!
執行的檔名:./test.sh
第乙個引數為:1
第二個引數為:2
第三個引數為:3
例如:#!/bin/bash
echo "shell 傳遞引數例項!";
echo "執行的檔名:$0";
echo "第乙個引數為:$1";
echo "第二個引數為:$2";
echo "第三個引數為:$3";
$0:執行指令碼的名字 $_:代表上乙個命令的最後乙個引數 $!:代表最後執行的後台命令的pid
不同點:只有在雙引號中體現出來。假設在指令碼執行時寫了三個引數 1、2、3,,則 " * " 等價於 "1 2 3"(傳遞了乙個引數),而 "@" 等價於 "1" "2" "3"(傳遞了三個引數)。
例如以下shell指令碼例子:
#!/bin/bash
echo "-- \$* 演示 ---"
for i in "$*"; do
echo $i
done
echo "-- \$@ 演示 ---"
for i in "$@"; do
echo $i
done
shell指令碼的執行:
$ chmod +x test.sh
$ ./test.sh 1 2 3
-- $* 演示 ---
1 2 3
-- $@ 演示 ---12
3.變數的操作:
(1)變數名稱:只能包含字母、數字、下劃線,並且不能以數字開頭,不能與系統已有變數重名,見名知意
(2)變數定義: your_name="runoob.com"注意,變數名和等號之間不能有空格,要區別於程式語言中的程式設計習慣
(3)檢視變數: set:檢視所有變數 檢視當前shell中的環境變數(printenv、env、export)
(4)變數引用: $,如果要列印變數則使用echo $
(5)撤銷變數: unset varname
(6)列印變數長度: var="ddddddd" echo $
(7)雙引號: 雙引號裡可以有變數 ,比如:echo時對變數進行替換,echo "$"
雙引號裡可以出現轉義字元,比如:echo -e "asdn\nadadss"
(8)單引號: 單引號裡的任何字元都會原樣輸出,單引號字串中的變數是無效的;echo時不做變數替換,echo '$'
例如:echo 'nihao'nihao'ssss' 輸出為:nihaonihaossss
echo 'nihao"sss"lll' 輸出為:nihao"sss"lll
echo 'nihao"$"sadad' 輸出為:nihao$sadad
(9)提取子字串: string="runoob is a great site" echo $ # 輸出 unoo
Shell基礎及變數3 20
1.shell在linux系統中的位置 使用者請求 shell linux核心 硬體 2.shell命令 1 歷史命令 history raw histfiles 預設儲存1000條,可以在 etc profile中修改 n 列出最近使用的 n條命令,包括 history n c 將所有的histo...
shell基礎及變數
一 shell基礎 1 root www history raw histfiles 選項與引數 n 數字,意思是 要列出最近的n 筆命令列表 的意思!c 將目前的shell 中的所有history 內容全部消除 a 將目前新增的history 命令新增入histfiles中,若沒有加histfil...
shell基礎及變數
shell的兩種主要語法型別有bourne和c,這兩種語法彼此 不相容。命令與檔案補全 tab鍵 一次 補全名稱 tab鍵 兩次 顯示所有相似名稱 命令別名 alias 別名 原命令 刪除別名 unalias 別名 多命令順序執行 命令1 命令2 命令1 命令2 管道符命令1 命令2 tee ech...