筆記三

遺留問(wèn)題:

string =“hello,world!”
   printf “%s\n” $string
   printf "%s\n" "hello,world"
   printf "%s\n" hello,world
   printf "%s\n" "${string}"
三種寫(xiě)法:
 $string  ${string}  "${string}"

pritnf打印字符串:
   若變量的值中有空格,則打印時(shí)應(yīng)使用“$變量名”,字符串賦值時(shí),若值中有空格,用“”括起來(lái)
   變量名=“hello,world”
   $引用變量,不能夠把“”一起引用,因此打印時(shí)需要“$變量名”

1.字符串的拼接

(1)引用字符串的值,并將多個(gè)字符串的值作為新的字符串賦給新的變量,即str="$string $string1"
   (2)字符串的長(zhǎng)度
     lenth=${#string}
     注意:此時(shí)的#不再是注釋?zhuān)硎居?jì)算字符串的長(zhǎng)度
  ?。?)字符串的分割
     nstr=${string:a:b}
     把字符串string從第a個(gè)開(kāi)始截取b個(gè)字符,賦給新的變量nstr

2.readonly:只讀

read only num=2
   echo $num
   num=88
   echo $num
   只讀變量不可更改!

3.清除變量的值

num=33
   echo $num
   unset num
   echo $num

注意:unset是清除變量的值。若變量未定義直接使用,其值為空

4.再次強(qiáng)調(diào)

(1)shell程序必須指定腳本的解釋程序,即在shell腳本程序的第一行必須是:# !、bin/bash
  ?。?)空格問(wèn)題
變量賦值時(shí),=兩邊不可有空格
其他情況:
盡量加空格

5.從鍵盤(pán)獲取變量的值

read:在沒(méi)有輸入時(shí),則一直等待輸入。
   read 變量1 變量2 變量3?。捍吻闆r將輸入的第一個(gè)值賦值給變量1,第二給變量2,剩余的值全部給變量3,不建議熱用read num1 num2 num3……這種獲得變量值得方法。
   建議:
   read num1
   read num2
   read num3

6.權(quán)限問(wèn)題

r:可讀  w:可寫(xiě) x:可執(zhí)行
    sudo chmod a+x filename
   sudo chmod u+x,g+x filename
   sudo chmod +x filename
   sudo chmod 777 filename

7.shell的三大語(yǔ)句

功能型語(yǔ)句,說(shuō)明型語(yǔ)句,結(jié)構(gòu)分支語(yǔ)句
  ?。?)說(shuō)明型語(yǔ)句
以#開(kāi)頭的語(yǔ)句,至末行均為說(shuō)明型語(yǔ)句,說(shuō)明型語(yǔ)句不解釋執(zhí)行(整行),即注釋。說(shuō)明型語(yǔ)句的位置可以程序中的任何位置,可以放在解釋執(zhí)行語(yǔ)句之后,從#開(kāi)始的部分到末行,#只能注釋一行
  ?。?)功能型語(yǔ)句
系統(tǒng)命令,自寫(xiě)程序……
  ?。?)結(jié)構(gòu)分支語(yǔ)句
多路分支語(yǔ)句,循環(huán)語(yǔ)句,循環(huán)控制語(yǔ)句,測(cè)試語(yǔ)句,條件語(yǔ)句
結(jié)構(gòu)性語(yǔ)句:加減乘除,取余(整數(shù))

8.條件測(cè)試語(yǔ)句

test 測(cè)試語(yǔ)句
   [ 條件測(cè)試語(yǔ)句 ] :注意[]中的空格??!
   -e file:測(cè)試file的是否存在
   -d file:測(cè)試file是否是目錄
   -f file:測(cè)試file是否是文件
   -r file:測(cè)試file是否可讀
   -w file:測(cè)試file是否可寫(xiě)
   -x file:測(cè)試file是否可執(zhí)行

整數(shù)測(cè)試:
   -eq:是否相等
   -ne:是否不等
   -gt:是否大于
   -ge:是否大于等于
   -lt:是否小于
   -le:是否小于等于
   -z:string  :string長(zhǎng)度是否為零
   -n string?。喝魋tring非零,為真
   string=string:是否相同
   string!=string1

常見(jiàn)

9.加,減,乘,除,取余

expr let:針對(duì)整數(shù)做簡(jiǎn)單的加減乘除,取余(整數(shù))
   expr :
   sum=expr $num + $num1
   sum1=expr $num \* $num1
   注意空格
   let :
   let sum =num+num1
   let sum1=num*num1
   乘法*:是去掉*的原來(lái)的意思,告訴解釋器

10.if語(yǔ)句

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容