Linux Shell & scp指令

Linux Shell

一個簡單的shell文件示例:
#!/bin/bash

echo "Hello World !"

 

SHELL定義變量示例:your_name="test_name"

使用一個定義過的變量,只要在變量名前面加美元符號即可

使用變量示例:your_name=" test_name "

echo $your_name

echo ${your_name}

變量名外面的花括號是可選的,加不加都行,加花括號是爲了幫助解釋器識別變量的邊界

 

已定義的變量,可以被重新定義,如:

your_name=" test_name "

echo $your_name

your_name=" test_name2"

echo $your_name

 

使用readonly 命令可以將變量定義爲只讀變量,只讀變量的值不能被改變。

下面的例子嘗試更改只讀變量,結果報錯:

#!/bin/bash

myUrl="http://www.baidu.com"

readonly myUrl

myUrl=http://www.google.com

 

使用 unset 命令可以刪除變量。語法:

unset variable_name

變量被刪除後不能再次使用。unset 命令不能刪除只讀變量

 

SHELL拼接字符串(直接拼接字符串變量)

your_name=" test_name "

greeting="hello,"$your_name" !"

greeting_1="hello, ${your_name}!"

echo $greeting $greeting_1

 

SHELL獲取字符串長度(使用#號操作)

string="abcd"

echo ${#string} #輸出4

SHELL提取子字符串

 

以下實例從字符串第 2 個字符(索引爲1)開始截取 4 個字符:

string="runoob is a great site"

echo ${string:1:4} # 輸出 unoo

 

SHELL查找子字符串

查找字符 "i 或s" 的位置:

string="runoob is a greatcompany"

echo `expr index "$string"is`  # 輸出 8

 

SHELL數組相關:

bash支持一維數組(不支持多維數組),並且沒有限定數組的大小

在Shell中,用括號來表示數組,數組元素用"空格"符號分割開。定義數組的一般形式爲:

數組名=(值1 值2 ... 值n)

讀取數組元素值的一般格式是:

${數組名[下標]}

例如:

valuen=${array_name[n]}

使用@符號可以獲取數組中的所有元素,例如:

echo ${array_name[@]}

獲取數組長度的方法與獲取字符串長度的方法相同,例如:

# 取得數組元素的個數

length=${#array_name[@]}

# 或者

length=${#array_name[*]}

# 取得數組單個元素的長度

lengthn=${#array_name[n]}

 

SHELL外部引用:

和其他語言一樣,Shell 也可以包含外部腳本。這樣可以很方便的封裝一些公用的代碼作爲一個獨立的文件

Shell 文件包含的語法格式如下:

. filename  # 注意點號(.)和文件名中間有一空格

source filename

 

shell函數示例:

下面的例子定義了一個函數並進行調用:

#!/bin/bash

demoFun(){

   echo "這是我的第一個 shell 函數!"

}

echo "-----函數開始執行-----"

demoFun

echo "-----函數執行完畢-----"

輸出結果:

-----函數開始執行-----

這是我的第一個 shell 函數!

-----函數執行完畢-----

 

在Shell中,調用函數時可以向其傳遞參數。在函數體內部,通過 $n 的形式來獲取參數的值,例如,$1表示第一個參數,$2表示第二個參數...

注意,$10 不能獲取第十個參數,獲取第十個參數需要${10}。當n>=10時,需要使用${n}來獲取參數。

 

還有SHELL很有用的一個命令test:

Shell中的 test 命令用於檢查某個條件是否成立,它可以進行數值、字符和文件三個方面的測試。

實例演示:

num1=100

num2=100

if test $[num1] -eq $[num2]

then

   echo '兩個數相等!'

else

   echo '兩個數不相等!'

fi

輸出結果:

兩個數相等!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章