bash shell 判斷變數是否在列表中

2022-03-26 19:56:24 字數 863 閱讀 2818

最近在跟乙個ai的專案,**量很少,於是寫了個指令碼,想用scp直接複製到生產,但是有一些檔案需要排除掉。

實際上,原理就是,在雙中括號中,可以使用=~進行shell的正則匹配,找出右邊的字串是否在左邊的字串中。

但是需要注意的是,雙中括號在bash中可以使用,在sh中會報找不到的錯,這也是我使用的時候遇到的乙個坑。

譬如,需要判斷檔案是否不在列表中

#!/bin/bash

# 判斷檔案是否不在列表中

src_dir=/test/dir

exclude_files="

a.py b.py c.ini

"for

file

in $src_dir/*

do sname=$(basename $file)

if ! [[ "$exclude_files" =~ "$sname" ]]

then

echo "file not in $sname"

fi done

或者更簡化的例子,判斷字串是否包含另外乙個字串:

#!/bin/bash

string="

abcdefg

"if [[ "

$string

" =~ "

abc" ]];then

echo

"match...

"else

echo

"not match..

"fi

結果輸出match…

(1) bash 中單括號和雙括號

(2) 如何判斷乙個變數是否包含在陣列裡面 判斷shell陣列中是否存在某個值

(完)

php判斷變數是否存在

主要包含三個方法isset,empty,is null 寫這篇的目的主要是為了在平時做健壯性的時候的一些總結,舉例子肯定簡單,因為已經知道此資料的結構,但是實操中情況非常複雜不知道過來的是什麼結構的資料是很稀鬆平常的事。bool isset mixed va r m ixedva r m ixed ...

php判斷變數是否存在

isset 檢測變數是否設定,isset 只能用於變數,因為傳遞任何其它引數都將造成解析錯誤。若想檢測常量是否已設定,可使用 defined 函式。如果已經使用 unset 釋放了乙個變數之後,它將不再是 isset 若使用 isset 測試乙個被設定成 null 的變數,將返回 false。同時要...

bash shell 的變數處理

一次變數置換 變數沒有值 echo 若a沒有值,就送給a乙個abc,作為它的值,這時a的值就永久是abc了,直到下次修改。下面例子不常用 echo 若a沒有值,則提示 必須需要給變數乙個值 echo 若a沒有值,就借給a乙個值,次命令執行完後,a還是空值。變數有值 echo 臨時替換變數的值 a 1...