与えられた文字列bin / bashで部分文字列の位置を見つけるスクリプト

与えられた文字列bin / bashで部分文字列の位置を見つけるスクリプト

特定の文字列内の部分文字列の場所(インデックス)を知らせるシェルプログラムを作成する必要があります。

  • 入力例:-
 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" ]]2つの文字列が同じであることを確認します。 1つは他のものの部分文字列になるように意図されているため、ほとんど一致しないため失敗しますif

関連情報