文字列がシェルスクリプト(#!bin/sh)の別の文字列の一部であるかどうかを確認しようとしています。
私が今持っているコードは:
#!/bin/sh
#Test scriptje to test string comparison!
testFoo () {
t1=$1
t2=$2
echo "t1: $t1 t2: $t2"
if [ $t1 == "*$t2*" ]; then
echo "$t1 and $t2 are equal"
fi
}
testFoo "bla1" "bla"
私が探している結果は、「bla」が「bla1」にいつ存在するかを知りたいということです。
よろしくお願いします
更新:ここに記載されているように両方の「含む」機能を試しました: Unix Shellスクリプトで文字列に別の文字列が含まれているかどうかをどのように確認しますか?
Stringの構文と同様に、bash に含まれる文字列
ただし、通常のシェルスクリプト(bin/sh)とは互換性がないようです...
助けて?
Bashで書くことができます(アスタリスクは外側引用符であることに注意してください)
if [[ $t1 == *"$t2"* ]]; then
echo "$t1 and $t2 are equal"
fi
/ bin/shの場合、=
演算子は、パターンマッチングではなく、等価性のみを目的としています。ただし、case
を使用できます
case "$t1" in
*"$t2"*) echo t1 contains t2 ;;
*) echo t1 does not contain t2 ;;
esac
特にLinuxをターゲットにしている場合、/ bin/bashが存在すると仮定します。