Если ваша оболочка представляет собой bash :в двойных скобках, правая -сторона оператора == является шаблоном, если он не процитирован полностью:
if [[ world == w* ]]; then
echo true
else
echo false
fi
Или короче :[[ world == w* ]] && echo true || echo false
[ *]
Если вы не ориентируетесь конкретно на bash :, используйте оператор case для сопоставления с образцом
case "world" in
w*) echo true ;;
*) echo false ;;
esac
[ *] но вы должны быть осторожны с формой A && B || C
, потому что C
будет выполнено, если либо A не сработает , либо B не сработает. Форма if A; then B; else C; fi
будет только выполнять C, если A терпит неудачу.
В багтрекере трансмиссии есть открытый тикет по этому поводу:https://github.com/transmission/transmission/issues/1325