Shell 極簡教程

2021-09-20 05:19:05 字數 2640 閱讀 2088

vim hello_world.sh

#!/bin/bash

echo "hello world !"

chmod +x *.sh

./hello_world.sh

hello,world!

#!/bin/bash

echo "hello,world!"

a=1b=`expr $a + 1`

echo $b

注意,變數名和等號之間不能有空格,這可能和你熟悉的所有程式語言都不一樣。同時,變數名的命名須遵循如下規則:

首個字元必須為字母(a-z,a-z)。

中間不能有空格,可以使用下劃線(_)。

不能使用標點符號。

不能使用bash裡的關鍵字(可用help命令檢視保留關鍵字)。

除了顯式地直接賦值,還可以用語句給變數賦值

其中, $1 表示呼叫該函式傳入的第1個引數。

17 say_nowtime()

21 22 say_nowtime "jack"

說明:

1、可以帶function fun() 定義,也可以直接fun() 定義,不帶任何引數。

2、引數返回,可以顯示加:return 返回,如果不加,將以最後一條命令執行結果,作為返回值。

shell 和其他程式語言一樣,支援多種運算子,包括:

算數運算子

關係運算子

布林運算子

字串運算子

檔案測試運算子

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

expr 是一款表示式計算工具,使用它能完成表示式的求值操作。

例如,兩個數相加(注意使用的是反引號 ` 而不是單引號 '):

#!/bin/bash

echo "hello,world!"

a=1b=`expr $a + 1`

echo $b

需要注意的是,$a + 1 之間必須要有空格,這跟大部分的程式語言不同。

image.png

需要注意的是,陣列之間的元素時用空格隔開的,不是用的逗號。

訪問陣列元素的語法是: $

另外,通過$$

可以訪問陣列所有元素。

獲取陣列的長度 $ :

image.png

有幾個特殊字元用來處理引數:

引數處理

說明$#

傳遞到指令碼的引數個數

$*以乙個單字串顯示所有向指令碼傳遞的引數

$$指令碼執行的當前程序id號

$!後台執行的最後乙個程序的id號

$@與$*相同,但是使用時加引號,並在引號中返回每個引數。

$-顯示shell使用的當前選項,與set命令功能相同。

$?顯示最後命令的退出狀態。0表示沒有錯誤,其他任何值表明有錯誤。

與其他程式語言類似,shell支援for迴圈。

for迴圈一般格式為:

for var in item1 item2 ... itemn

do command1

command2

...commandn

done

寫成一行:

for var in item1 item2 ... itemn; do command1; command2… done;
當變數值在列表裡,for迴圈即執行一次所有命令,使用變數名獲取列表中的當前取值。命令可為任何有效的shell命令和語句。in列表可以包含替換、字串和檔名。

in列表是可選的,如果不用它,for迴圈使用命令列的位置引數。

例如,順序輸出當前列表中的數字:

for loop in 1 2 3 4 5

do echo "the value is: $loop"

done

if 語句語法格式:

if condition

then

command1

command2

...commandn

fi

寫成一行(適用於終端命令提示符):

if [ $(ps -ef | grep -c "ssh") -gt 1 ]; then echo "true"; fi
shell中的 test 命令用於檢查某個條件是否成立,它可以進行數值、字元和檔案三個方面的測試。

詳見:源**:

$ cat hello_world.sh 

#!/bin/bash

echo "hello,world!"

a=1b=`expr $a + 1`

echo $b

array=(1 2 3 4 5 "x" "y" "z")

echo $

echo $

echo "array[1] = $"

echo "array length = $"

say_nowtime()

say_nowtime "jack"

Shell極簡入門

簡單shell案例 使用vim建立乙個檔案hello.sh 首行新增宣告,使用的是 bin目錄下的bash直譯器,因為linux有很多的直譯器 bin bash 然後新增上一句 echo hello 按 輸入wq 儲存退出 為檔案新增可執行許可權 控制台輸入以下內容 chmod x hello.sh...

crontab極簡教程

toc crontab簡介 linux crontab是用來定期執行程式的命令。當安裝完成作業系統之後,預設便會啟動此任務排程命令。crontab常用命令 crontab e 開啟vi編輯器,編寫乙個定時任務,退出vi後,若vi內容不為空,則會建立乙個任務。crontab l 檢視當前已經建立的定時...

crontab極簡教程

目錄linux crontab是用來定期執行程式的命令。當安裝完成作業系統之後,預設便會啟動此任務排程命令。建立兩個定時任務。第乙個,一分鐘執行一次,使用echo輸出一串字元 第二個,兩分鐘執行一次,使用echo輸出另一串字元。在linux 的shell 中輸入crontab e 命令 echo o...