1. 程式人生 > >2、shell輸入和輸出

2、shell輸入和輸出

shell指令碼:
1、用途:完成特定的、較複雜的系統管理任務
2、格式:集中儲存多條Linux命令,普通的可執行的文字檔案
3、執行方式:按照預設的順序依次解釋執行

執行shell指令碼的方式:
1、bash test.sh
2、./test.sh
    #需要寫解析器即指令碼中新增解析器即第一行 #! /usr/bin/bash
    #需要給指令碼設定執行許可權


shell變數的種類:
1、使用者自定義變數:由使用者自己定義、修改和使用
2、預定義變數:Bash預定義的特殊變數,不能直接修改
3、位置變數:通過命令列給程式傳遞執行引數

定義新變數:
1、變數名要以英文字母或下劃線開頭,區分大小寫
2、格式: 變數名=變數值
檢視變數的值:
格式:echo $變數名
    注: echo "this is ${name}age 18"

從鍵盤輸入內容為變數賦值:
格式  read -p "please input your name: " name   name是變數名

結合不同的引號為變數賦值
雙引號"" :解析變數,允許通過$符號引用其他變數值
單引號'' :不解析變數,$視為普通字元
反引號`` :將引號內的內容當作命令,然後可賦值給某個變數
    注:鍵盤上Esc正方的那個符號

刪除變數
unset 變數名

 

位置變數
表示為$n,n為1~9之間的數字,一個指令碼最多傳遞9個引數
./test.sh one two three four... $1代表one,$2代表two 
sh檔案中使用時為:
echo $1

預定義變數對位置變數的補充
表示形式:
$#:獲取位置引數的個數
$*:所有位置引數的內容
$?:上一條命令執行後的返回的狀態,當返回狀態值為0時表示執行正常,非0值表示執行異常或出錯
$0:獲取當前執行的程序/程式 名
示例:
    ls
    if [[ $? == 0 ]]; then
        echo '正確執行'
    else    
        echo '程式出錯'
    fi

從鍵盤獲取引數進行加減乘除
第一種語法
total=$(($1+$2)) 賦值用法
echo $total     
echo $(($1-$2))
echo $(($1*$2))
echo $(($1/$2))  捨去法取整
echo $(($1%$2))
賦值:total=$(())

第二種語法
格式:expr 變數1 運算子 變數2 ...[運算子 變數n]
    注:變數與運算子之間必須用空格隔開
expr的常用運算子
加:+ 
減:- 
乖:\* 
除:/ 
求模(取餘)運算:%
    注:除法結果為整數,捨去法取整
賦值用法:
    total=`expr $1 + $2`
    注:因為expr是命令故必須用反引號才能給變數賦值

 


shell的輸入輸出
echo -e "aaa\nbbb"
    注:-e 識別\n(換行符),且在行尾自動生成換行符
    也能解析一些顏色代號,使輸出的字變色
    示例:
    echo -e "\033[32;40m[test]\033[0m"    [test]  字會變綠色

echo -n "ccc\nbbb"
    注:-n 識別\n(換行符),在行尾不自動換行
示例:
    echo -n "please input your name:"
    read name
    echo $name

    上述更簡單方法為:
    read -p "please input your name:" name
    echo $name

echo  可以輸出一行空行
    
字元介面前景顏色
echo -e "\033[32;40m[test]\033[0m"
說明:
\033[前景顏色;背景顏色m
\033[0m  0m指恢復到系統預設的顏色

字型顏色
30設定黑色前景
31設定紅色前景
32設定綠色前景
33設定棕色前景
34設定藍色前景
35設定紫色前景
36設定青色前景
37設定白色前景
背景顏色
40設定黑色背景
41設定紅色背景
42設定綠色背景
43設定棕色背景
44設定藍色背景
45設定紫色背景
46設定青色背景
47設定白色背景


其它輸入命令
cat
tee  通過管道,將輸出的結果儲存到另一個檔案中,即邊輸入邊儲存
more  檢視檔案時使用管道服務加上more時檔案檢視不完時可以一行一行的檢視
head
tail
nl 示例: nl /etc/passwd 帶行號的將內容輸出

cat示例:
cat<<x 

    aaaaa
x
說明:原樣輸出,x可以是任意字母,有標記即可
    linux下vim編輯器中一個table代表8個空格,預設應該是4個故只能一個一個打即可