簡體   English   中英

如何檢查$ 1在bash腳本中是否包含特殊字符?

[英]How to check if $1 contains special characters in bash script?

我想檢查$1是否具有以下任何特殊字符@#$%&*-=+

用戶將運行如下腳本:

testserver@matrix:~> scriptname somer@nd$m

腳本應該檢測somer@nd$m是否具有任何特殊字符! 謝謝

通常,要確定變量是否包含字符集的成員,可以按照bash手冊中所述將模式匹配與字符集一起使用。

[[ $var = *[set]* ]]

在您的情況下,設定的組合非常棘手。 它包含“&”和“-”,它們具有特殊含義。 破折號在前,或者外殼將字符集視為一個范圍 只需將&符轉義。 所以你要做

[[ $var = *[-@#$%'&'*=+]* ]]

如果您只是在尋找特殊字符,可以使用

if egrep -q "[@#$%&*-=+]" <<< "$1"
then
    echo "Special Characters"
fi

請注意,盡管在您的示例中,傳入somer@nd$m會嘗試查找名為m的變量,除非您在單引號中傳遞參數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM