shell基礎整理

2022-09-09 22:45:34 字數 3031 閱讀 6607

學習整理

參考部落格:

shell是一種指令碼語言,常見的指令碼直譯器有:

定義變數

number=100

country="china"

使用變數

在定義過的變數前面加上$符號就可以了。另外,對於變數的{}是可以選擇的,幫助直譯器識別變數的邊界。

echo $number

echo "i love my country$"

重定義變數

直接重新賦值就可以了

唯讀變數

readonly home="jiangsu"
刪除變數
unset variable_name
變數型別

執行shell時,同時存在三種變數

環境變數

shell變數

特殊變數

$?可以獲取上乙個命令的退出狀態。就是上乙個命令執行後的返回結果。成功返回0。

echo中的轉義符:

使用echo -e禁止轉義,預設也是不轉義的。

echo -e可以對轉義字元進行替換。

命令替換

把乙個命令的輸出複製給乙個變數,方法是使用反引號``

directory=`pwd`

echo $directory

變數替換

expr的乘法為\* 除法/

expr的表示式和運算子之間要有空格;

關係運算子

只支援數字。

布林運算子

字串運算子

檔案測試運算子

unix檔案的各種屬性。

雙引號字串的拼接

country="china"

echo "hello, $country"

#也可以

echo "hello, "$country" "

獲取字串的長度
string='abcd'

echo $

提取子字串
string="alibaba is a great company"

echo $ #輸出liba

查詢字串
string="alibaba is a great company"

echo `expr index "$string" is`

處理路徑的字串

bashename 得到檔名

bashename -a 表示處理多個路徑 -s表示去掉指定檔案的字尾名

bashname /home/1.txt   1.txt
得到路徑名,不帶檔名 使用dirname

dirname /home/1.txt  >   /home
bash支援一位陣列,不支援多為陣列。

array_name=(1 2 3 4)
array_name[0]=value0

array_name[1]=value1

讀取元素
$
它與c語言的printf相似,不過也有不同:

1、printf不用加括號

if語句

a=10

b=20

if [ $a == $b ]

then

echo "a is equal to b"

else

echo "a is not equal to b"

fi

for 迴圈

for 變數 in 列表

docommand1

command2

done

for loop in 1 2 3 4 5

doehco "the value is: $loop"

done

while迴圈
while command

docomment

done

until迴圈

untile迴圈執行一系列命令直至條件為true時停止

格式類似於while

shell函式必須先定義後使用,定義如下,

function function_name()
shell可以包含外部指令碼,將外部指令碼的內容合併到當前指令碼。

使用

. filename

或source filename

shell 基礎整理

shell 基礎整理 1,指令碼檔名以 sh 2,命名變數 1 自定義變數 name zhangsan 2 evn 大小寫字母 3 echo name echo path 4 作用域 預設自定義變數 區域性 通過呼叫多個shell程序 開啟shell 父 再次開啟shell 子 env shlvl ...

Shell基礎整理

shell的作用是將使用者輸入的文字命令轉換成核心能識別的資料指令交給核心進行執行,核心需要翻譯成二進位制交由cpu底層來執行 使用者層 shell 呼叫對應應用程式 kernel 硬體層 運算和周邊外設 傳遞給kernal 應用程式 shell 使用者 shell就是底層命令直譯器,shell就是...

Shell基礎整理一

僅以此章記錄曾經奮鬥的歲月 位置變數 1,2 bin bash ip 1 ping ip echo ping ip is up echo ping ip is down 演示位置變數 1 root localhost sh ping.sh 192.999.999.999 114.114.114.11...