第二章 shell變數及相關操作
1、shell變數型別
1)環境變數
①home
使用者主目錄的全路徑名
②path
變數path定義的一些目錄路徑,路徑由冒號分隔
例:新增新路徑
$path=$path:新路徑名
③term
終端型別
④pwd
當前工作目錄的絕對路徑
⑤ps1、ps2
主提示符、輔助提示符
⑥shell
定義shell的直譯器路徑
⑦mail
定義系統信箱的路徑
⑧logname
登入使用者的使用者名稱
⑨uid
當前使用者的uid
2)位置變數
引數的位置:
$命令 引數1 引數2 引數3($0 $1 $2 $3)
需要用shift命令移動位置引數
3)預定義的特殊變數
①$#:實際位置引數個數
②$*:命令列中的所有位置引數組成的字串
③$!:上乙個後台命令對應的程序號
④$?:表示最近一條命令執行後的退出狀態(返回值),為十進位制
⑤$$:當前程序號pid
4)使用者自定義的變數
變數區分大小寫,建議用大寫
2、變數的操作
1)建立變數
變數名=變數值
例:city=beijing
注:等號前後不可有空格;包含空格需要用雙引號
定義變數的時候不需要加$,而使用變數的時候則需要加$
2)區分變數名
使用大括號來區分變數和其它字元
#order=22
#echo "this is $nd"
tom is 22nd
3)刪除變數
unset刪除變數
3、變數的賦值
1)使用read命令賦值
規則:①多個資料或變數用空格分隔
②若相等,對應賦值
③若變數個數大於輸入個數,沒有輸入的變數取空值
④若變數個數小於輸入個數,將多餘的資料賦值給最後乙個變數 例:
#!/bin/bash
echo -n "請輸入使用者名稱:"
read name
echo "使用者名稱:$name"
2)直接給變數賦值
變數名=變數值
例:city=beijing
注:等號前後不可有空格;包含空格需要用雙引號
3)使用命令列引數賦值
shell提供位置變數,通過位置引數賦值。當多於9個時,使用shift移位
4)利用命令的輸出結果賦值
將乙個可執行命令的執行結果賦值給乙個變數,使用反引號(')
5)從檔案讀入資料實現賦值
從乙個指定檔案讀入資料並賦值給變數
4、變數的輸出
1)echo命令:直接輸出變數的值
echo $name1 $name2
2)printf命令:格式化輸出變數
與c語言類似
5、陣列變數
1)陣列的定義
宣告陣列並為其賦值:
各個元素以空格分離 或
name[0]="sad"
輸出:echo $
也可以只為某些元素賦值
name=([0]=value0 [3]=value3 [5]=value5)
2)陣列的複製
*和@作用都是提取出整個陣列元素,但是加上雙引號,略有不同
@把原陣列的內容複製到乙個新陣列,新陣列和原來的一樣
*把原陣列中的所有元素當成乙個元素複製到新陣列,生成的新陣列只有乙個元素
3)陣列元素的個數
返回陣列中元素的個數 $
4)陣列元素的長度
返回陣列中指定元素的長度 $
6、算術運算
1)expr命令
有5種算術運算子:+、-、*、/、%
$x=`expr $b / $a`
2)let命令
let x=x+1
3)浮點算術運算
使用bc、awk等命令
第二章 shell變數
檢視所有全域性和區域性變數 delare和set 檢視所有全域性變數 env 定義環境變數 使用者變數在家目錄下的 bash profile和 bashrc中設定 全域性變數在 etc profile和 etc bashrc及 etc profile.d 下的指令碼檔案 登入shell待用流程 et...
第二章 Shell程式設計之變數
bash是linux中的標準shell,因此經常稱bash為shell。預設型別是字串型。變數名與變數值都是使用者自定義的,就是說可以由使用者控制修改的。變數名 變數值 注意 左右不能有空格。echo是最簡單的變數呼叫,也只能用作輸出。如 echo 變數名 例如 x 123 x x 456 x 78...
c 第二章 變數
c 基本算術型別 char 8位 wchar t 16位 short 16位 int 16位 long 32位 float 6位有效數字 double 10位有效數字 long double 10位有效數字 1.8位的塊為乙個位元組,32位為乙個字 2.unsigned無符號型別,表示大於等於0的數...