select cast(score/10 as varchar) + '-' + cast(score/10+9 as varchar),
count(*)
from scores
group by score/10
Что-то действительно простое и наивное:
echo "$PATH"|grep -q whatever && echo "found it"
Где то, что вы ищете. Вместо &&
вы можете поместить $?
в переменную или использовать правильный оператор if
.
Ограничения включают:
Или используйте однострочную строку perl:
perl -e 'exit(!(grep(m{^/usr/bin$},split(":", $ENV{PATH}))) > 0)' && echo "found it"
У нее все еще есть ограничение, заключающееся в том, что она не выполняет никаких расширений оболочки, но не дает сбоя, если подстрока совпадает. (Вышеупомянутое соответствует " / usr / bin
", если это не ясно).
или использование однострочника perl:
perl -e 'exit(!(grep(m{^/usr/bin$},split(":", $ENV{PATH}))) > 0)' && echo "found it"
Это все еще имеет ограничение, которое не выполняет никаких расширений оболочки, но не дает сбоя при совпадении подстроки. (Вышеупомянутое соответствует " / usr / bin
", если это не ясно).
или использование однострочника perl:
perl -e 'exit(!(grep(m{^/usr/bin$},split(":", $ENV{PATH}))) > 0)' && echo "found it"
Это все еще имеет ограничение, которое не выполняет никаких расширений оболочки, но не дает сбоя при совпадении подстроки. (Вышеупомянутое соответствует " / usr / bin
", если это не ясно).
Использование grep
является излишним и может вызвать проблемы, если вы ищете что-либо, содержащее метасимволы RE. Эту проблему можно отлично решить с помощью встроенной команды bash [[
]:
if [[ ":$PATH:" == *":$HOME/bin:"* ]]; then
echo "Your path is correctly set"
else
echo "Your path is missing ~/bin, you might want to add it."
fi
Обратите внимание, что добавление двоеточий перед расширением $ PATH и путем поиска решает проблему совпадения подстроки; Заключение пути в двойные кавычки позволяет избежать проблем с метасимволами.
Вот как это сделать без grep
:
if [[ $PATH == ?(*:)$HOME/bin?(:*) ]]
Ключ здесь - сделать двоеточия и подстановочные знаки необязательными с помощью конструкции ? ()
. В этой форме не должно быть никаких проблем с метасимволами, но если вы хотите включить кавычки, они идут туда:
if [[ "$PATH" == ?(*:)"$HOME/bin"?(:*) ]]
Это еще один способ сделать это с помощью оператора сопоставления ( = ~
) поэтому синтаксис больше похож на grep
:
if [[ "$PATH" =~ (^|:)"${HOME}/bin"(:|$) ]]