linux bash 的基礎語法

2022-01-11 08:03:22 字數 4075 閱讀 8024

示例均來自網路,附帶有原始鏈結位址,自己練習整理發出,均測試可用

linux shell 基本語法 - 周學偉 -

定義變數,等號左右不要有空格

通過export 變成全域性變數

#!/bin/bash

#a.sh

a=666

b=hello

g_user=root

export g_user#全域性變數

echo $a

echo $b

echo $g_user

#呼叫

bash a.sh

圓括號

current_date=$(date)

echo current data is [$current_date]

用反引號,和鍵盤上的波浪符號乙個鍵(僅參考,使用1即可)

current_date=`date`

echo current data is [$current_date]

花括號加反引號(僅參考,使用1即可)

current_date=

echo current data is [$current_date]

#!/bin/bash

#a.sh

if [[ $1 == 1 ]]; then

echo "first argument is 1"

else

echo "first argument is not 1"

fi#呼叫

bash a.sh 1

#!/bin/bash

#a.sh

case $1 in

1)echo "the case is 1"

;;2)

echo "the case is 2"

;;3)

echo "the case is 3"

;;4)

echo "the case is 4"

;;*)

echo "no case match first argument"

;;esac

#呼叫

bash a.sh 2

形式一

#!/bin/bash

#a.sh

for (( i = 0; i < 10; i++ )); do

echo "current value is $i"

done

#呼叫

bash a.sh

形式2

#!/bin/bash

#a.sh

for i in 1 2 3 4 5; do

echo "current value is $i"

done

#呼叫

bash a.sh

#!/bin/bash

#a.sh

i=$1

while [[ $i > 0 ]];

do echo "now i's value is $i"

let "i=i-1"

done

#呼叫

bash a.sh 10

shell自定義函式 - 立志做乙個好的程式設計師 -

#!/bin/bash

#a.sh

function add()

plus()

value=$(add $1 $2);

echo "[echo value:$value,function add value:$?]"

value=$(plus $1 $2);

echo "[echo value:$value,function plus value:$?]"

#呼叫

bash a.sh 5 7

#!/bin/bash

#a.sh

name=(a bbb c d e f g) #陣列

length=$ #獲取陣列長度

echo length1:$ #獲取陣列長度

echo length2:$ #獲取陣列長度

echo length3:$ #取得陣列單個元素的長度

for (( i = 0; i < $length; i++ )); do

echo value $i=$ #讀取陣列的值

done

#呼叫

bash a.sh

shell中重定向的深入講解_linux shell_指令碼之家

>  輸出重定向,覆蓋方式

>> 輸出重定向,追加方式

< 輸入重定向

<< 標準輸入來自命令列的一對分隔號的中間內容

例項

#生成 input.txt

cat zhao

qian

sunli

zhou

wuzheng

wang

eof#將input.txt檔案作為sort命令的輸入

sort < input.txt

# 將排序後的結果輸出到input.sort.txt檔案中

sort < input.txt >input.sort.txt

# 將排序後的結果追加輸出到input.txt檔案中

sort < input.txt >> input.txt

#將標準輸入重定向為input.txt檔案,標準輸出重定向為input2.txt檔案(追加),將標準錯誤重定向為error檔案

sort 0< input.txt 1>> input2.txt 2> input.error.txt

乙個程式的的輸入可以來自於鍵盤,也可以來自於檔案或者其他裝置;同樣的,乙個程式也可以將輸出顯示在螢幕或者儲存到檔案中。這就涉及到標準輸入標準輸出標準錯誤

程式的輸入是標準輸入,預設是鍵盤,使用者可以將其指定為檔案或其他裝置。

程式的輸出有兩種,即標準輸出和標準錯誤,其中標準輸出是程式的正常輸出、標準錯誤是程式的錯誤輸出。二者預設都被指定為螢幕,使用者可以將其指定為檔案或其他裝置。

每個輸入源和輸出地都有乙個描述符,標準輸入的描述符為0,標準輸出的描述符為1,標準錯誤的描述符為2。

linux下eof寫法梳理 - 散盡浮華 -

執行指令碼的時候,需要往乙個檔案裡自動輸入n行內容。如果是少數的幾行內容,還可以用echo追加方式,但如果是很多行,那麼單純用echo追加的方式就顯得愚蠢之極了!

這個時候,就可以使用eof結合cat命令進行行內容的追加了。

eof是end of file的縮寫,表示自定義終止符.既然自定義,那麼eof就不是固定的,可以隨意設定別名,在linux按ctrl-d就代表eof.

eof一般會配合cat能夠多行文字輸出.

#把eof的內容作為cat 的輸入

cat aaabbb

ccceof

獲取引數定義

#!/bin/bash

#a.sh

while getopts "a:b:c:r:" arg; do

case $arg in

a)a=$optarg

;;b)

b=$optarg

;;c)

c=$optarg

;;r)

repo=$optarg

;; ?)

echo you need help

;;esac

done

echo "a:$a,b:$b,c:$c,repo:$repo"

#呼叫

bash a.sh -a 3 -b 4 -c 5 -r 6

Linux bash語法提要

command command 執行相關的命令 獲取變數的值 計算式 算術運算,只能進行整型計算,如果有小數時,可以使用bc命令進行輔助 單引號 不具備變數置換功能 雙引號 具備變數置換功能 使用絕對或相對路徑,以及 bash sh script.sh執行時都會使用乙個全新的bash環境來執行scr...

linux bash的基礎特性

bash的基礎特性 2 1.命令別名 alias 通過alias命令實現 1 alias 顯示當前 shell 程序所有可用的命令別名 2 alias name value 定義別名name,其相當於執行命令 value 注 在命令列中定義的別名,僅對當前shell程序有效,若果想永久有效,要定義在...

Linux bash基礎特性

2.2 檔案相關 2.3 指令碼程式設計相關 2.4 其他 shell程式是獨特的程式,這個程式提供了乙個介面 就那黑乎乎的命令列介面,即linux的終端介面 使用者通過這個介面訪問作業系統核心的服務,從而解析使用者提供的命令。而bash bourne again shell 是眾多shell的一種...