testerhome學習筆記2 Bash基礎

2022-08-24 11:57:07 字數 3764 閱讀 5413

一、變數

1.變數的定義:

a. 變數與變數內容以=連線,等號兩邊不能有空格。   a=1

b. 變數名稱只能是英文和數字,但開頭字元不能是數字。my2name=liyuanyuan

c.如果變數內容有空格需要使用單引號或者雙引號,雙引號內的特殊字元可以保持原有的本性,如果是單引號內的特殊字元則僅為一般字元,所以如果是字元,最好用雙引號。 d="hello from liyuanyuan" 

e=`ls`(在``之內的命令將會先被執行)

d.取消變數用「unset 變數名」 。unset my2name

e.為變數增加變數內容時,可以用$變數名或者$累加內容。d="$d"2018

2.變數的使用:

a.變數的顯示用:echo $a或者echo $,使用後者更為嚴謹。比如a="hello";echo $a_1;輸出的內容為空,因為a_1不存在;如果echo $_1則輸出為hello_1

b.變數沒有定義時也可以使用,預設為空值

3.預定義變數:

pwd 是乙個命令 表示當前的目錄

echo  $pwd 是乙個預定義的變數,pwd=pwd

4.陣列變數:

使用()來定義陣列變數,內容中間用空格隔開,如array=(1 2 3 4 5), echo $或者echo $都是顯示全部陣列,

5.特殊符號的使用

a. 特殊符號的使用

\反斜槓,一般情況下將特殊字元變成一般字元,轉義符

例子:

echo -e 

"a\nbb"

-e 是開啟轉義模式

如果沒有 -e

echo "a\nbb"

想要列印乙個 a"bb

echo -e "a\"bb"

echo "a\\b"

這兩個都是用作命令替換的,換言之就是重組命令列的

執行順序是先執行反引號裡的命令,然後將其結果替換出來,再重組成新的命令列

舉例:echo my dir is

echo my dir is $(ls)

在操作上,這兩個東西都能達到相應的效果

對比:``比較容易和''搞混

$()的弊端是,不是所有的類unix系統都支援,但是``都支援

6.變數的型別

字串 a="liyuanyuan"

數字a=3

布林a=true

7.數字型變數的操作

a.只能進行整數計算a=5;echo $((a+5));

b.可以對數字型變數進行更新a=5;((a=a+5));echo $a;  echo $((a++));

8.字串的操作

a.對字串進行取值$,對於變數value從第offset個字元擷取,長度為length  s="hello from liyuanyuan";echo $輸出:from liyuanyuan  echo $輸出:from

b.獲取字串長度$ echo $ 輸出:21

c.獲取陣列元素的個數array=(a b c d e);echo $ 

d.字串掐頭:echo 「$」;輸出:from liyuanyuan echo 「$」輸出:from liyuanyuan echo 「$」 輸出m liyuanyuan 兩個#號為貪婪匹配,一直匹配到最後乙個相應字元 ps:輸出後面加上雙引號,就是將匹配後的內容當作乙個整體。

f.字串去尾:echo "$" 輸出:hello from  echo "$" 輸出:hello from li

h.字串的替換:$  echo $  輸出:hello from testerhome

$:查詢var變數儲存的字元中最開始處能夠由pattern匹配到的內容,並替換為replacement;

$:查詢var變數儲存的字元中最後位置能夠由pattern匹配到的內容,並替換為replacement;

i.查詢刪除:

$:查詢var變數儲存的字元中第一次由pattern匹配到的內容,並刪除;

$:查詢var變數儲存的字元中所有能夠由pattern匹配到的內容,並刪除;

$:查詢var變數儲存的字元中最開始處能夠由pattern匹配到的內容,並刪除;

$:查詢var變數儲存的字元中最後位置能夠由pattern匹配到的內容,並刪除;

g.字串大小寫轉換

$:把var變數中的所有小寫字母,統統替換為大寫;

$:把var變數中的所有大寫字母,統統替換為小寫;

$:把var變數中的所有大寫字母,統統替換為小寫,小寫的統統替換為大寫的

9.布林變數

a=true;echo $? 輸出:0  b=false;echo $? 輸出:0,因為她是字串,如果輸入false;echo $? 則輸出:1

10.算術判斷

邏輯判斷

ge 大於等於

eq 等於

ne 不等於

gt 大於

lt 小於

le 小於等於

格式規範:中括號裡面的內容和中括號,以及裡面的內容中間必須有空格

11.字串比較

a.比較兩個字串內容是否相同

b.判斷字串是否為空,-n為空,-z不為空

12.邏輯判斷

-a 等同於邏輯與,等價為&&

-0 等同於邏輯或,等價為||

13.內建判斷

-e file 如果檔案存在則為真

-d file 如果檔案是乙個子目錄則為真

-f file 如果檔案是乙個普通資料夾則為真

-r file 如果檔案是乙個可讀檔案則為真

-s file 如果檔案的長度不為0則為真

-w file 如果檔案可寫則為真

-x file 如果檔案為可執行,則為真

ps:which命令

用於查詢並顯示給定命令的絕對路徑

例子:

which python

學習筆記2

異常 try catch exception e finally 如果出現異常的 沒有try catch語句,異常會浮現至它所出現的方法上,然後從該方法拋至其呼叫者。異常分為檢查異常和非檢查異常,常見的錯誤例如1 0等為非檢查異常,大部分都是檢查異常。過載,重寫 過載就是同乙個類中方法名相同,但是方...

學習筆記2

import tensorflow as tf 常量tf.constant value,dtype,shape,name 變數tf.variable self,dtype 隨機數生成函式 正態分佈隨機數 tf.random normal 2,3 stddev 2,mean 0,seed 1 截斷正態...

學習筆記2

建立新使用者 1.用root使用者登陸,輸入命令 adduser 使用者名稱passwd 使用者密碼。注意,沒有設定密碼的使用者不能登陸。資料庫1.order by 後面可以寫上數字,代表相應順序的字段,這是任何資料庫都支援的。2.設計資料庫的時候,有些資訊可以分兩張表實現,一張寫基本資訊,另一張寫...