執行shell指令碼的幾種方法:
1、第一種sh、bash法:sh ***.sh;
2、第二種路徑法:直接輸入該指令碼的絕對路徑或相對路徑。 前提是要給指令碼賦權 chmod 755 ***.sh
/home/admin/***.sh 或者進入admin目錄下 ./***.sh
3、第三種source法: source ***.sh; (相當於相對路徑執行 ./***.sh)
一般寫shell指令碼,在第一行會輸入 #!/usr/bin/bash 這個是解釋用什麼直譯器來執行該指令碼的意思,直譯器的啟動位置。
一般直譯器都放在/usr/bin目錄下,上面可以直接寫 #!/usr/bin。 也有一些機器可能是要寫#!/bin/bash,看情況了。
單行注釋 行首加 # 符號,就僅注釋該行。 如 #123
多行注釋 比較少用。 可以進入視覺化模式,一次性在行首新增 # 符號實現注釋
:<< 自定義標記變數是資料的載體,存放資料;呼叫的時候,如呼叫變數a,可以寫$ 或 $a 或 "$"。shell是弱型別語言,有多種格式。注釋內容1
注釋內容2
自定義標記
說明,自定義標記,可以隨意,如abc。前後要一樣。
字串: a="abc" --要用引號,單引號或雙引號均可
數值: b=10
變數修改:重新賦值即可修改,如b=12 ,輸出時就不再是10了。
變數清除:unseta
雙引號和單引號的區別:如 a="$" a='' (其中b=12),結果返回:前者a=12,後者a=變數分 本地變數 (區域性變數,當前shell使用)、全域性變數(也叫靜態變數,跨shell使用)、內建變數(特殊變數)。使用雙引號,賦的是變數的值;
使用單引號,賦的是單引號內的所寫內容。
單引號屬於強引用,它會忽略所有被引起來的字元的特殊處理,被引用起來的字元會被原封不動的使用。
--單引號、雙引號、反引號
反引號和$()引起來的字元會被當做命令執行後替換原來的字元
一般寫的變數,都是本地變數。
把本地變數變成全域性變數,用export 變數名,即可實現把本地變數匯出為全域性變數。全域性變數,建議變數名都是大寫。
變數查詢:env|grep 變數名,env可以檢視所有的變數
(思考:臨時變數、永久變數?)
$1 第乙個引數 $2 第二個引數 以此類推(最大是$9) $0是指令碼名稱 $*所有引數 $#引數個數
sh ***.sh 引數1 引數2 引數3
變數是變化的,可以用引數的方式進行傳遞。就有給 每個引數 都有個 固定的內建變數。
傳參以及解析引數的過程,這個引數可以成為內建變數。
動態獲取資料的方式:傳參 ,鍵盤輸入。
read -p "please input:" myvar,然後輸入內容,回車即可。 echo $myvar ,就會輸出剛輸入的內容。
變數名=`命令`
result=`ls`+ - * / % 等算術運算. /是只取商值(整數) %取餘數echo $ 就會返回ls的結果
echo "$((a + b))" --》 $((數學表示式))
返回布林值,即true或false。(0是true,1是false)
-gt 大於 -lt 小於 -ge 大於等於 -le 小於等於 -eq 等於 -ne 不等於 (不能直接用 <>=之類的符號,得用引數的方式)
echo $? 返回上個命令列執行的結果,0是true,1是false。
[ $a -gt $b ]括號內左邊和右邊各有乙個空格。
與或非。返回布林值,即true或false。(0是true,1是false)
-a代表and-o代表or!代表非
[ $a -gt $b -a $b -le $c ] a大於b,並且b小於c。
[!$a -gt $b ] a不大於b
判斷兩個字串內容是不是一樣。返回布林值,即true或false。(0是true,1是false)
= 相等 != 不等 -z 判斷字串內容長度是否為0
[ -z $a ] a變數是否為空內容
[ $a != $b ] 兩個值是否不相等
返回布林值,即true或false。(0是true,1是false)
-d 判斷是否為目錄
-f 判斷是否為檔案
-e 判斷是否存在該檔案或資料夾
[ -d $ ]
test -引數 路徑 等價於 [ -引數 路徑 ]
Shell學習(一)變數
shell變數可分為兩類 區域性變數 環境變數 區域性變數只在建立他們的shell指令碼中使用。例如 在指令碼中定義 a 123 引用變數可以使用 a echo a 就會顯示123 引用變數的時候用 環境變數可以在建立他們的shell及其派生出來的任意子程序中使用。shell常見的系統變數解析 0當...
python學習筆記(一) 變數與運算子
python語言中有下面幾種變數型別 整型 python中可以輸入任意大小的整數,在python3.x中只有int這一種整數型別,支援二進位制 0b100 八進位制 0o10 十進位制 10 十六進製制 0x16 表示。浮點型 浮點數就是小數,可以用科學計數法來表示 123.456與1.23456e...
perl學習筆記一 變數
變數 一.直接量 常量 perl中常量和其他語言例如c語言沒什麼太大區別。所以在下面指出一些與其他語言不相同的地方。1.1 數字常量 在perl中可以表示八進位制和十六進製制。八進位制以0打頭,十六進製制以0x打頭。例如 a 010 八進位制 b 0x10 十六進製制 為了不跟八進位制的數字混淆,數...