1209學習總結

字符串

1.字符串的拼接
引用字符串的值,并將多個字符串的值作為新的字符串賦給新變量
2字符串的長度
lenth=${#string} 注意此時的#不再是注釋,表示字符串的長度
例如:

    lenth1=${#string1}
    lenth2=${#string2}
    lenth3=${#str}
    echo "$string1 :" lenth1
    echo "$string2 :" lenth2
    echo "$str:" lenth3

3字符串的分割
nstr=${string:a:b} 從字符串string的第a個字符后開始截取b個字符,附給新的變量nstr
例如:

    nstr1=${string1:1:2}
    nstr2=${string2:2:1}
    nstr3=${str:4:5}
    printf "nstr1:%\n"  "$nstr1"
    printf "nstr2:%\n"  "$nstr2"
    printf "nstr3:%\n"  "$nstr3"

2.只讀:readonly

    readonly 
    num=34
    echo $num
    num=88 #錯誤{error}
    echo $num       //只讀變量的值不可更改!!!

3.清除變量的值

    um=333
    echo $num
    unset num
    echo $num   

unset 是清除變量的值,若變量未定義直接使用,起始值為空。
強調:(1)Shell程序必須指定腳本的解釋程序,
即在Shell腳本程序的第一行必須是: #!/bin/bash
(2)空格問題
變量賦值時,“=” 兩邊不可有空格
字符串的空格問題
其他情況:盡量加空格

4.權限問題

  sudo chmod a+x read.sh            所有用戶
  sudo chmod u+x,g+x read.sh        擁有者和同組用戶,用 “,”隔開
  sudo chmod +x read.sh          所有用戶   
  sudo chmod 777 read.sh           所有用戶所有權限

5.從鍵盤獲取變量值

read:在沒有輸入時,則等待輸入
read 變量1 變量2 變量3 //輸入時,同樣輸空格隔開變量
將輸入的第一個值賦給變量1,第二個值賦給變量2,剩余的值全部賦給最后一個變量,依次類推,但不建議使用

6.Shell的三大語句

功能型語句、說明性語句、結構分支語句
(1)說明型語句
以#開頭的語句,至行末均為說明性語句,說明型語句不解釋執行(整行),即注釋
說明型語句的位置可以在程序中的任意位置,可以放在解釋執行語句之后,從#開始的部分到行末。
“#”只能注釋一行
(2)功能型語句
系統命令,自寫程序....(平常輸入的命令)
(3)結構型語句
多路分支語句,循環語句,循環控制語句,測試語句,條件語句

7.加、減、乘、除、取余(整數)

expr或 let:針對整數做簡單的運算
sum1=expr $num1 + $num2 必須要有空格
sum2=expr $num1 \* $num2
let sum1=num1+num2
let sum2=num1*num2
乘法“*”,\轉義字符為去掉的原意,告訴解釋器為乘法
``:取得結果集
$():取得結果集 二者執行效果相同
*

8.條件測試語句

test 測試語句
[ 條件測試語句 ]: 注意[] 中的空格!!!

    -e file:測試file是否存在
    -d file:測試file是否是目錄
    -f file:測試file是否是文件
    -r file:測試file是否可讀
    -w file:測試file是否可寫
    -x file:測試file是否可執行
   整數測試
        -eq:是否相等        equal
        -ne:是否不等        not equal
        -gt:是否大于        greater than
        -ge:是否大于等于  greater equal
        -lt:是否小于        less than
        -le:是否小于等于  less equal
    字符串比較:
        -z string:string長度是否為零
        -n string:若string非零,為真
        string = string1:是否相同
        string != string2:是否不同
        echo -n:不換行輸出
    邏輯操作符:
        &&:邏輯與
        事件1 && 事件2:當事件1和事件2都為真,則為真
        ||:邏輯或
        事件1 || 事件2:當事件1或事件2為真,則為真
        -a:and
        -0:or
    常見變量:
        $?:命令執行后的返回狀態,返回零表示執行成功
        $*:所以參數列表
        $@:所以參數列表
        $#:傳遞到腳本的參數個數
        $0:可執行命令本真,不是位置參數

9.if語句

(1)if [ 條件 ]
then
    命令
fi
(2)if [ 條件 ]
then
    命令
elif [ 條件 ]
then
    命令
else
    命令
fi

10.case

case 值 in
值1)
    命令
    ;;
值2)
    命令
    ;;
*)
    命令
    ;;
esac
|:多重選擇
?:任意一個字符
*:任意多個字符

12.for循環

for 值 in 值列表
do
    for 值 in 列表
    do
        命令
    done
done    
===============
for((i=1;i<9;i++))
do
    執行語句
done
注意:for循環值列表可以省略

13.while

while [ 條件 ]
do
    命令
done

總結

·暫時對Linux中許多命令行的操作不夠熟練也經常性遺忘,通過今天開小組會議我知道強行記性是沒什么效果的,更加堅定了我多練的想法,雖然我暫時練習不夠,有時也有點懶,但我會盡可能克服的。
·我覺得在學習中雖然注重方法,但興趣也是很關鍵的,我很慶幸,在我接觸程序的這段時間以來,我能發覺自己已經有一定的興趣,上課環境也很好,學習的過程并不是那么的枯燥,我會投入更多的精力迎接下面的課程。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 0.linux啟動的步驟 設備加電----》BIOS自檢-----》grub引導啟動-----》加載內核----》...
    萌面大叔2閱讀 792評論 0 1
  • 個人學習批處理的初衷來源于實際工作;在某個迭代版本有個BS(安卓手游模擬器)大需求,從而在測試過程中就重復涉及到...
    Luckykailiu閱讀 4,761評論 0 11
  • 一直處在不能放下顧慮來一場說走就走的旅行的狀況中,忙于生計,這樣的想法早已被壓在心底,當有一天給自己放個假的想法達...
    歡樂屋閱讀 329評論 0 0
  • 那天陽光正好! 一個短發,看起來羞答答的小女孩說:“大哥哥,你可不可以,,,。”樹上的小男孩用著霸...
    陽光最傾城閱讀 164評論 1 1