shell 三 相關表示式

2021-09-26 15:48:37 字數 3156 閱讀 6299

一    檔案表示式

常規的

# 特殊-->e是不是一般檔案!

if [ -f file ] 如果檔案存在(普通檔案)

if [ -d ... ] 如果目錄存在(directory)

if [ -s file ] 如果檔案存在且非空(socket)

if [ -r file ] 如果檔案存在且可讀(可讀)

if [ -w file ] 如果檔案存在且可寫(可寫)

if [ -x file ] 如果檔案存在且可執行(可執行)

幫助文件:man test

root:不受許可權的影響,注意這一點!

需求1:檔案存在並且是普通檔案輸出1

[ -f temp ] && echo 1 || echo 0
涉及:簡單的邏輯控制!

需求2:判斷許可權

[root@server1 mnt]# chmod 000 temp

[root@server1 mnt]# ll temp

---------- 1 root root 11 aug 29 12:29 temp

[root@server1 mnt]# [ -r temp ] && echo 1 || echo 0

1

說明:不完全看許可權,看最終的結果,針對root許可權有時候沒有作用!

需求3:shell變數測試

[root@server1 mnt]# file1=/etc/rc.local 

# 是不是檔案!-->最好加上雙引號,表示乙個整體!

[root@server1 mnt]# [ -f "$file1" ] && echo 1 || echo 0

1# 對單個檔案或目錄變數的測試需要加雙引號,避免錯誤

需求4:將多個命令寫到{}

#!/bin/bash

[ $1 -eq 8 ] ||

# 條件表示式判斷條件後面執行多條命令語句寫法

說明:用{}放多個命令,{}表示後面的命令是乙個整體!

條件表示式特點:相對於條件表示式,簡潔,短小精悍!

相關對比

1、test 測試表示式

2、[ 測試表示式 ] #兩邊需要有空格

3、[[ 測試表示式 ]]

4、(( 測試表示式 )) # 無需空格,常規數學符號!

說明:第一種和第二種是等價的,第三種是擴充套件的test命令(擴充套件的地方),語法4常用於計算

在 雙中括號中可以使用萬用字元等進行模式匹配,&& || > < 等操作符可以直接應用於雙中括號中,但不能用於單中括號中

字串表示式

-n  nonzero       ---->長度是不是非0

-z zero ---->字串的長度是不是非0

"串1" = "串2" ---->兩個字串是不是相等

"串1" != "串2" ---->兩個字串是不是不相等

# 注意1:所有的字串測試操作必須用""引起來!

# 注意2:比較符號的兩端必須有空格

空格導致的問題

[root@server1 mnt]# [ "wzj"="1" ]&& echo 1 || echo 0

1[root@server1 mnt]# [ "wzj" = "1" ]&& echo 1 || echo 0

0

相關練習

# 以"wzj"載體

[root@server1 mnt]# [ -n "wzj" ] && echo 1 || echo 0

1[root@server1 mnt]# [ -z "wzj" ] && echo 1 || echo 0

0[root@server1 mnt]# [ ! -z "wzj" ] && echo 1 || echo 0 # 取反

1

說明:關於變數的省略

注意:如果變數不存在(未定義),則預設長度為0!

相關模仿

# 定位-->sed -n "30,31p" /etc/init.d/network

vim /etc/init.d/network # 提供的例子

[ "$" = "no" ] && exit 6

整數表示式

特點:文字形式進行數字比較!

注意:不同場景使用不同的符號!

擴充套件:如果混用,在中對於特殊符號(<>)進行比較需要反斜槓\轉移!

相關結論

對2的說明

[root@server1 mnt]# [[ 2 > 11 ]] && echo 1 || echo 0

1# 邏輯比較(第一位)

R中的假設檢驗(三)相關與回歸

學到哪兒寫到哪兒,這篇後面會隨時更新。一 相關分析 研究變數與變數間的關係就需要分析其相關性,就需要使用相關分析,相關分析比較簡單。它分為皮爾遜相關 斯皮爾曼相關 肯德爾等級相關,並且他們有各自的適用範圍 1 pearson,皮爾遜積差相關係數,適用於兩個變數為連續變數,且兩個變數需要嚴格符合正態性...

css3相關筆記(三)

1.每乙個方向上的邊框形狀並不是矩形的,其實是三角形或梯形的,配合圓角邊框可以製作美麗花瓣。2.css3 3d變換效果 transform transform rotatex 360deg 表示在x軸3d旋轉360度。transform rotatey 360deg 表示在y軸3d旋轉360度。tr...

css3相關筆記(三)

1.每乙個方向上的邊框形狀並不是矩形的,其實是三角形或梯形的,配合圓角邊框可以製作美麗花瓣。2.css3 3d變換效果 transform transform rotatex 360deg 表示在x軸3d旋轉360度。transform rotatey 360deg 表示在y軸3d旋轉360度。tr...