用于查找给定字符串 bin/bash 中子字符串位置的脚本

用于查找给定字符串 bin/bash 中子字符串位置的脚本

我们必须编写一个 shell 程序来告诉给定字符串中子字符串的位置(索引)。

  • 示例输入:-
 Code Quotient - Get Better at Programming 
 at 
  • 样本输出:- 28

我已经编写了代码,但在每种情况下它都给出-1..请有人帮助我找到错误。

#!/bin/bash
read a
read b
if [[ "$a" == "$b" ]]; then
    rest=${a#*$b}
    echo $(( ${#a} - ${#rest} - ${#b} +1 ))
else
    echo "-1"
fi

答案1

您的表达式[[ "$a" == "$b" ]]检查两个字符串是否相同。由于其中一个旨在成为另一个的子字符串,因此它们几乎永远不会匹配,因此无法if成功。

相关内容