我需要检查变量是否包含特定字符,以便在BASH中使用if条件,例如:
if [ "①" is in "$numbers" ]
then
echo "Found."
else
echo "Not found."
fi
如果$numbers
是“这些是一些数字1232”,则返回“未找到。”,但如果在该行的任何位置找到“①”,则返回“找到”。
我一直在使用$numbers | grep -c ①
,然后检查输出是否大于“0”,但似乎必须有一个更简单的解决方案。
答案 0 :(得分:3)
只要它是bash并且不需要posix:
if [[ "$numbers" =~ ① ]]; then
echo "Found"
fi
答案 1 :(得分:3)
比较的右侧可以是一种模式:
if [[ $numbers = *①* ]] ; then
答案 2 :(得分:2)
对于posix解决方案,请使用case
语句代替if
语句:
numbers="①"
case "$numbers" in
*①*) echo "Found it." ;;
*) echo "Not here." ;;
esac
此解决方案将在dash
下工作,这是受Debian影响的发行版下脚本的默认shell(/bin/sh
)。