文字列の最後の文字が/
x="test.com/"
if [[ $x =~ //$/ ]] ; then
x=$x"extention"
else
x=$x"/extention"
fi
現時点では、常に false が発生します。
文字列の最後の文字が/
x="test.com/"
if [[ $x =~ //$/ ]] ; then
x=$x"extention"
else
x=$x"/extention"
fi
現時点では、常に false が発生します。
たとえば、次のようにします。
$ x="test.com/"
$ [[ "$x" == */ ]] && echo "yes"
yes
$ x="test.com"
$ [[ "$x" == */ ]] && echo "yes"
$
$ x="test.c/om"
$ [[ "$x" == */ ]] && echo "yes"
$
$ x="test.c/om/"
$ [[ "$x" == */ ]] && echo "yes"
yes
$ x="test.c//om/"
$ [[ "$x" == */ ]] && echo "yes"
yes
${var:index}
とを使用して Bash で文字列のインデックスを作成し${#var}
、文字列の長さを取得できます。負のインデックスは、文字列の末尾から先頭に移動することを意味するため-1
、最後の文字のインデックスになります。
if [[ "${x:${#x}-1}" == "/" ]]; then
# last character of x is /
fi
あなたの状態は少し間違っていました。を使用する場合=~
、rhs はパターンと見なされるため、pattern
and notと言うでしょう/pattern/
。
と言えば、期待通りの結果が得られたでしょう
if [[ $x =~ /$ ]] ; then
それ以外の
if [[ $x =~ //$/ ]] ; then