linux shell 之結構化語法

2021-09-01 21:22:46 字數 3216 閱讀 2549

一、case分支語句

語法格式:     

case $變數名 in

模式1)

命令序列1

;;模式2)

命令序列2

;; *)

預設執行的命令序列

;; esac

case**例項

#!/bin/bash

read -p "press some key ,then press return :" key

case $key in

[a-z]|[a-z])

echo "it's a letter."

;;[0-9])

echo "it's a digit."

;;*)

echo "it's function keys、spacebar or other ksys."

;;esac

其中read -p 是從控制台讀取字串

二、if分支

語法格式

if command

then

commands

fi或者

if command:then

commands

fi或者

if command

then

commands

else

commands

fi或者

if command1

then

commands

elif command2

then

commands

fi

test命令語法

if test condition

then

commands

fi或者

if [condition]

then

commands

fi

test數值的比較

n1 -eq n2                        檢查n1是否與n2相等

n1 -ge n2                        檢查n1是否大於等於n2

n1 -gt n2                          檢查n1是否大於n2

n1 -le n2                          。。。。。

n1 -lt n2                           。。。。。

n1 -ne n2                         。。。。。。

test字串比較

str1 = str2

str1 != str2

str1 < str2                  

str1 > str2

-n str1                       檢查str1的長度是否非0

-z str1                        檢查str1的長度是否為0

注意,使用的時候《或者 >需要轉義\

**例項

#!/bin/bash

var1=10

var2=11

if [ $var1 -gt 5 ]

then

echo "the test value $var1 is greater than 5"

fiif [ $var1 -eq $var2 ]

then

echo "the values are equal"

else

echo "the valus are fifferent"

fi執行結果:

the test value 10 is greater than 5

the valus are fifferent

需要注意的是左右內側必須有空格,否則執行報錯

三、檔案比較

比較描述

-d file

檢查file是否存在並是乙個目錄

-e file

檢查file是否存在

-f file

檢查file是否存在並是乙個檔案

-r file

檢查file是否存在並可讀

-s file 

檢查file是否存在並非空

-w file

檢查file是否存在並可寫

-x file

檢查file是否存在並可執行

-o file

檢查file是否存在並屬於當前使用者所有

-g file

檢查file是否存在並且預設組與當前使用者相同

file1 -nt file2

檢查file1是否比file2新

file1 -ot file2

檢查file1是否比file2舊

**例項

#!/bin/bash

if [ -e $home ]

then

echo "home exist"

else

echo "home not exist"

fi

四、for語法

for var in list

do commands

done

例項

#!/bin/bash

for var in alaska ae we wer

do echo the next state is $var

done

執行結果:

$ sh fortest.sh

the next state is alaska

the next state is ae

the next state is we

the next state is wer

解析文字檔案,並迴圈輸出檔案內容

#!/bin/bash

ifs.old=$ifs

ifs=$'\n'

for entry in `cat /etc/passwd`

do echo "values in $entry"

ifs=:

for value in $entry

doecho " $value"

done

done

ifs=$ifs.old

while,until,..

LInux shell程式設計 使用結構化命令

1 使用if then語句 2 巢狀的if 3 符合條件測試 使用測試if value1 gt value2 這種形式的情況 1 數值比較 2 字串比較 3 檔案比較 其中,數值比較使用的是字串形式,而字串比較則使用的符號形式 其中在比較字串的時候必須進行轉義,不然會當作重定向符號,導致意想不到的錯...

結構化 半結構化和非結構化資料

在實際應用中,我們會遇到各式各樣的資料庫如nosql非關聯式資料庫 memcached,redis,mangodb rdbms關聯式資料庫 oracle,mysql等 還有一些其它的資料庫如hbase,在這些資料庫中,又會出現結構化資料,非結構化資料,半結構化資料,下面列出各種資料型別 結構化資料 ...

結構化 半結構化和非結構化資料

在實際應用中,我們會遇到各式各樣的資料庫如nosql非關聯式資料庫 memcached,redis。mangodb rdbms關聯式資料庫 oracle,mysql等 另一些其他的資料庫如hbase,在這些資料庫中。又會出現結構化資料。非結構化資料。半結構化資料,以下列出各種資料型別 結構化資料 可...