Вам не нужно удалять первые символы из $1
, поскольку bash [[ ]]
может выполнять сопоставление с шаблоном в стиле подстановки:
if [[ "$1" = *".$2" ]]; then
...
Обратите внимание, что вы должен использовать [[ ]]
, а не [ ]
, чтобы получить сопоставление с образцом, а не простое тестирование на равенство строк. Кроме того, наличие *
без кавычек, но .$2
в кавычках означает, что *
будет рассматриваться как подстановочный знак, но $2
будет совпадать буквально, даже если он содержит подстановочные знаки sh символов. Если вы хотите, чтобы $2
также обрабатывался как шаблон (например, вы можете использовать [Jj][Pp][Gg]
для сопоставления "jpg" и "JPG" и комбинаций), не используйте кавычки:
if [[ "$1" = *.$2 ]]; then
О, и кавычки вокруг $1
не имеют значения в этой конкретной ситуации; но я склонен заключать в кавычки переменные, если нет конкретной причины c.