shell入門使用

前言

Shell 是一個用 C 語言編寫的程序,它是用戶使用 Linux 的橋樑。Shell 既是一種命令語言,又是一種程序設計語言。
一般而言,我們會在Liuux系統中使用shell訪問系統並及進行一些數據的交互式操作。
這篇博客,南國根據自己平時的經驗,總結了一些常用的Shell指令。寫的不好,請多指教。

常見的shell指令

第一個shell執行的程序

第一個執行的程序 相比你也猜到是輸出hello,world了。 在這裏,爲了保證入門基礎的完整性,在這裏我簡單描述一下如何用shell輸出一個helloworld.

  1. vi創建某個.sh的文件(例如,vi hello.sh)
    echo “Hello, World. I come from China”
  2. 賦予腳本可執行的權限
    chmod +x ./hello.sh
  3. 執行腳本(這裏是./hello.sh)
    顯示“Hello, world. I come from China”

echo命令用於向窗口輸出文本

使用變量:使用一個定義過的變量,只要在變量名前面加上$符號,還可以對變量加上花括號{},變量名外面的花括號是可選的,加不加都行,加花括號是爲了幫助解釋器識別變量的邊界。推薦給所有變量加上花括號,這是個好的編程習慣。

your_name="qinjx"
echo $your_name
echo ${your_name}

for skill in Ada Coffe Action Java; do
    echo "I am good at ${skill}Script"
done

如果不給skill變量加花括號,寫成echo “I am good at $skillScript”,解釋器就會把$skillScript當成一個變量(其值爲空),代碼執行結果就不是我們期望的樣子了。

使用unset命令刪除變量

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

#!/bin/sh
myUrl="http://www.baidu.com"
unset myUrl
echo $myUrl

在包含文件

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

#!/bin/bash
myUrl="http://www.google.com"
readonly myUrl
myUrl="http://www.baidu.com"

運行腳本,結果是: /bin/sh: NAME: This variable is read only.

變量類型

變量類型:運行shell時,會同時存在三種變量
1) 局部變量 局部變量在腳本或命令中定義,僅在當前shell實例中有效,其他shell啓動的程序不能訪問局部變量。
2) 環境變量 所有的程序,包括shell啓動的程序,都能訪問環境變量,有些程序需要環境變量來保證其正常運行。必要的時候shell腳本也可以定義環境變量。
3) shell變量 shell變量是由shell程序設置的特殊變量。shell變量中有一部分是環境變量,有一部分是局部變量,這些變量保證了shell的正常運行

Shell中字符串的使用方法

獲取字符串長度

string="abcd"
echo ${#string} #輸出 4

提取子字符串

以下實例從字符串第 2 個字符開始截取 4 個字符:

string="runoob is a great site"
echo ${string:1:4} # 輸出 unoo

Shell 數組

bash支持一維數組(不支持多維數組),並且沒有限定數組的大小。
類似於 C 語言,數組元素的下標由 0 開始編號。獲取數組中的元素要利用下標,下標可以是整數或算術表達式,其值應大於或等於 0。

定義數組

在 Shell 中,用括號來表示數組,數組元素用"空格"符號分割開。定義數組的一般形式爲:
數組名=(值1 值2 … 值n)
例如:

array_name=(value0 value1 value2 value3)
或者
array_name=(
value0
value1
value2
value3
)
還可以單獨定義數組的各個分量:
array_name[0]=value0
array_name[1]=value1
array_name[n]=valuen
可以不使用連續的下標,而且下標的範圍沒有限制。

注意:使用@ 或 * 可以獲取數組中的所有元素

讀取數組

讀取數組元素值的一般格式是:
${數組名[下標]}
例如:
valuen=${array_name[n]}
使用 @ 符號可以獲取數組中的所有元素,例如:
echo ${array_name[@]}

獲取數組的長度

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

取得數組元素的個數
length=KaTeX parse error: Expected '}', got '#' at position 2: {#̲array_name[@]} …{#array_name[*]}

取得數組單個元素的長度
lengthn=${#array_name[n]}

Shell基本運算符

Shell 基本運算符
Shell 和其他編程語言一樣,支持多種運算符,包括:
算數運算符
關係運算符
布爾運算符
字符串運算符
文件測試運算符

原生bash不支持簡單的數學運算,但是可以通過其他命令來實現,例如 awk 和 expr,expr 最常用

expr 是一款表達式計算工具,使用它能完成表達式的求值操作
例如:兩個數相加: sum=`expr 2 + 2` #sum=4

兩點注意:
• 表達式和運算符之間要有空格,例如 2+2 是不對的,必須寫成 2 + 2,這與我們熟悉的大多數編程語言不一樣。
• 完整的表達式要被 ’ ’ 包含,注意這個字符不是常用的單引號,在 Esc 鍵下邊。

顯示變量
read 命令從標準輸入中讀取一行,並把輸入行的每個字段的值指定給 shell 變量
#!/bin/sh
read name
echo “$name It is a test”
以上代碼保存爲 test.sh,name 接收標準輸入的變量,結果將是:
[root@www ~]# sh test.sh
OK #標準輸入
OK It is a test #輸出

參考資料:
1.Shell 菜鳥教程

發佈了65 篇原創文章 · 獲贊 20 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章