在shell腳本中,如何確定一個字符串是否包含在另一個字符串中。 在bash中,我只是使用=〜,但我不確定我可以在/ bin/sh中執行相同的操作。可能嗎?Linux/bin/sh檢查字符串是否包含X
回答
您可以使用一個case語句:
case "$myvar" in
*string*) echo yes ;;
* ) echo no ;;
esac
所有你需要做的就是不管什麼替代string
你需要。
例如:
case "HELLOHELLOHELLO" in
*HELLO*) echo "Greetings!" ;;
esac
或者,換一種說法:
string="HELLOHELLOHELLO"
word="HELLO"
case "$string" in
*$word*) echo "Match!" ;;
* ) echo "No match" ;;
esac
當然,你必須意識到,$word
不應包含魔法水珠字符,除非你打算水珠匹配。
我試過,但沒有奏效 #/ bin/sh的 = 「HELLO」 myothervar = 「HELLOHELLOHELLO」 案 「$ MYVAR」 在MYVAR! * $ myothervar *)echo yes ;; *)echo no ;; esac – user2492861
星星,'*',任何一方都很重要,*必須*在那裏。 – ams
與我以前的評論(現在刪除)相反,它*做*可變擴展。這是缺少的星星是問題。 – ams
您可以嘗試 查找「他」在「這是一個測試」
TEST="This is a test"
if [ "$TEST" != "${TEST/his/}" ]
then
echo "$TEST"
fi
TEST =「這是一個測試」; if [「$ TEST」!= $ {TEST/his /}]; 然後; echo $ TEST; 網絡 – user3840020
我得到[:是:意外的運營商/操作數 – user2492861
您可以定義一個函數
matches() {
input="$1"
pattern="$2"
echo "$input" | grep -q "$pattern"
}
獲得正則表達式匹配。注:使用量爲
if matches input pattern; then
(無[ ]
)。
或者你可以直接寫'if echo'$ input「| grep -q「$ pattern」;然後',但這不是一個真正的解決方案。 – ams
@ams命名事宜:) –
- 1. 檢查字符串是否包含除
- 2. 檢查是否字符串包含「HTTP://」
- 3. 檢查Enum是否包含字符串?
- 4. 檢查NSMutableArray是否包含字符串
- 5. 檢查行是否包含字符串
- 6. 檢查是否WCHAR包含字符串
- 7. 檢查字符串是否包含字(不是子字符串!)
- 8. React-Native:檢查字符串是否包含字符串
- 9. Applescript:檢查一個字符串是否包含空字符串?
- 10. 檢查字符串是否不包含其他字符串
- 11. 檢查字符串是否包含子字符串
- 12. 檢查字符串是否包含字符集中的字符
- 13. PHP檢查字符串是否包含數字和檢查字符串長度
- 14. c# - 檢查字符串是否包含字符和數字
- 15. 檢查字符串中是否包含字符和數字
- 16. 查找字符串是否包含字
- 17. 檢查字符串包含字符串
- 18. 檢查字符串是否包含python中的特殊字符
- 19. 檢查字符串是否只包含允許的字符
- 20. 檢查字符串是否包含for循環的字符?
- 21. 檢查2個字符串是否包含相同的字符?
- 22. Java:檢查字符串是否包含多個字符
- 23. 檢查字符串是否只包含拉丁字符?
- 24. 如何檢查字符串是否包含某個字符?
- 25. 檢查字符串是否包含CJK(中文)字符
- 26. 檢查字符串是否包含Unicode字符的暴怒
- 27. 檢查一個字符串是否只包含特殊字符
- 28. 檢查一個字符串是否包含給定字符
- 29. 檢查字符串是否包含新行字符
- 30. 檢查一個字符串是否包含任何字符
可能的重複[你如何判斷一個字符串是否在Unix shell腳本中包含另一個字符串?](http://stackoverflow.com/questions/2829613/how-do-you-tell-if-a-string-包含另一個字符串in-unix-shell-scripting) –