腳本判斷字元串
❶ 腳本要求:指示用戶從鍵盤輸入一個字元,通過case語句判斷該字元是否為字母,數字,或其它控制字元
最後兩個分號去掉就可了。
#!/bin/bash
read-p"presssomekey,thenpressreturn:"KEY
case$KEYin
[a-z]|[A-Z])
echo"It'saletter."
;;
[0-9])
echo"It'sadigit."
;;
*)
echo"It'sfunctionkeys、Spacebarorotherksys."
esac
❷ .bat腳本,如何判斷字元串變數a是否包含字元串變數b
@echo off
set /p a=請輸入變數A的值
set /P b=請輸入變數B的值
::對比代碼開始
echo+%a%|findstr "%b%" //讀取變數A賦值與FINDSTR命令
::檢查FINDSTR命令的返回值。
if %errorlevel% equ 0 (
echo ok
) else (
echo not ok
)
❸ shell 如何判斷字元串是否以"/"結尾
學習shell的時候總是被shell里的條件判斷方式搞得頭疼,經常不知道改 用[],[[]],(())還是test,let,而很少有書把它們的關系講解的很清楚(應該是我悟性差或是看書太少),今天總結一下,基礎的東西如它們 的使用方法不再贅述,重點說說它們的區別的使用時應該注意的地方。
先說[]和test,兩者是一樣的,在命令行里test expr和[ expr ]的效果相同。test的三個基本作用是判斷文件、判斷字元串、判斷整數。支持使用與或非將表達式連接起來。要注意的有:
1.test中可用的比較運算符只有==和!=,兩者都是用於字元串比較的,不可用於整數比較,整數比較只能使用-eq, -gt這種形式。無論是字元串比較還是整數比較都千萬不要使用大於號小於號。當然,如果你實在想用也是可以的,對於字元串比較可以使用尖括弧的轉義形式, 如果比較"ab"和"bc":[ ab < bc ],結果為真,也就是返回狀態為0.
然後是[[ ]],這是內置在shell中的一個命令,它就比剛才說的test強大的多了。支持字元串的模式匹配(使用=~操作符時甚至支持shell的正則表達 式)。簡直強大的令人發指!邏輯組合可以不使用test的-a,-o而使用&&,||這樣更親切的形式(針對c、java程序員)。當 然,也不用想的太復雜,基本只要記住
2.字元串比較時可以把右邊的作為一個模式(這是右邊的字元串不加雙引號的情況下。如果右邊的字元串加了雙引號,則認為是一個文本字元串。),而不僅僅是一個字元串,比如[[ hello == hell? ]],結果為真。
另外要注意的是,使用[]和[[]]的時候不要吝嗇空格,每一項兩邊都要有空格,[[ 1 == 2 ]]的結果為「假」,但[[ 1==2 ]]的結果為「真」!後一種顯然是錯的
3.最後就是let和(()),兩者也是一樣的(或者說基本上是一樣的,雙括弧比let稍弱一些)。主要進行算術運算(上面的兩個都不行),也比較適合進行整數比較,可以直接使用熟悉的<,>等比較運算符。可以直接使用變數名如var而不需要$var這樣的形式。支持分號隔開的多個表達式
1.首先,盡管很相似,但是從概念上講,二者是不同層次的東西。
"[[",是關鍵字,許多shell(如ash bsh)並不支持這種方式。ksh, bash(據說從2.02起引入對[[的支持)等支持。
"["是一條命令, 與test等價,大多數shell都支持。在現代的大多數sh實現中,"["與"test"是內部(builtin)命令,換句話說執行"test"/"["時不會調用/some/path/to/test這樣的外部命令(如果有這樣的命令的話)。
2.[[]]結構比Bash版本的[]更通用。在[[和]]之間的所有的字元都不會被文件擴展或是標記分割,但是會有參數引用和命令替換。
用[[ ... ]]測試結構比用[ ... ]更能防止腳本里的許多邏輯錯誤。比如說,&&,||,<和>操作符能在一個[[]]測試里通過,但在[]結構會發生錯誤。
3.(( ))結構擴展並計算一個算術表達式的值。如果表達式值為0,會返回1或假作為退出狀態碼。一個非零值的表達式返回一個0或真作為退出狀態碼。這個結構和先前test命令及[]結構的討論剛好相反。
4.[ ... ]為shell命令,所以在其中的表達式應是它的命令行參數,所以串比較操作符">"與"<"必須轉義,否則就變成IO改向操作符了(請參看上面2中的例子)。在[[中"<"與">"不需轉義;
由於"[["是關鍵字,不會做命令行擴展,因而相對的語法就稍嚴格些。例如
在[ ... ]中可以用引號括起操作符,因為在做命令行擴展時會去掉這些引號,而在[[ ... ]]則不允許這樣做
❹ lua腳本中怎麼對比字元串
lua 字元串的比較 是檢測字元串的hash是否一樣來判斷兩個字元串是否相等
測試代碼如下:
local a = "dfadfafdasf"
local b = "dfadfafdasf"
print(a==b)
❺ shell腳本判斷字元串等於3或者99的輸出那一行
可以使用 if-elif-else 語法來寫多條件語句。
1、首先要理解if-else的基本用法,if條件+then操作+else操作+fi閉合,書寫方法如下:
❻ 腳本裡面如何比較字元串的匹配模式
比如變數是strstr="thisisastring"要想在判斷str中是否含有"this"這個字元串,下面的語句是可行的[[$str=~"this"]]&&echo"\$strcontainsthis"[[$str=~"that"]]||echo"\$strdoesNOTcontainthis"
❼ 關於linux中shell腳本如何判斷文件名稱中是否含有某字元串
if [ -e filename ];
我覺得是你括弧錯了…此外這種括弧不能用通配符…試試[[]]?不行可以用for代替if
❽ JSP腳本判斷兩字元串相等的問題
javaScript
中字元串比較沒有equals()方法,可以直接用==比較兩個字元串是否相等
追問:
if(receiveUname.equals(myName)){
errorMsg
+=
"\n不允許跟自己發消息";
}
就是這一段
加上去
上面兩個條件
都沒有反應了....怎麼弄啊!
++分
回答:
receiveUname.equals(myName)
javaScript中字元串比較沒有equals()方法用receiveUname==myName
追問:
好像
沒反應的
我試了的
是不是變數的問題?
回答:
var
myName=document.form[0].sendUname.value;
form
是forms
吧
追問:
en
解決了
謝啦
❾ 怎麼用shell腳本語言,判斷輸入的字元串是否包含字母或者數字
read-p"請輸入一個字元串"str
ifecho"$str"|grep"[a-zA-Z]">/dev/null&&echo"$str"|grep"[0-9]">/dev/null
then
echo"yes"
else
echo"no"
fi
❿ shell腳本判斷字元串是否包含某個字元
方法一:利用grep查找
strA="long string"strB="string"result=$(echo $strA | grep "${strB}")if [[ "$result" != "" ]]then echo "包含"else echo "不包含"fi
方法二:利用字元串運算符 《Linux就該這么學》 一起學習linux
strA="helloworld"strB="low"if [[ $strA =~ $strB ]]then echo "包含"else echo "不包含"fi
方法三:利用通配符
A="helloworld"B="low"if [[ $A == *$B* ]]then echo "包含"else echo "不包含"fi