Подтвердить что ты не робот

Как проверить первый символ в строке в unix

Я пишу script в unix, где мне нужно проверить, является ли первый символ в строке "/", и если это так, ветвь.

например, у меня есть строка

/some/directory/file

Я хочу, чтобы это возвращалось 1

и

[email protected]:/some/directory/file

для возврата 0

как я могу это сделать?

4b9b3361

Ответ 1

Много способов сделать это. Вы можете использовать подстановочные знаки в двойных скобках:

str="/some/directory/file"
if [[ $str == /* ]]; then echo 1; else echo 0; fi

Вы можете использовать расширение подстроки:

if [[ ${str:0:1} == "/" ]] ; then echo 1; else echo 0; fi

Или регулярное выражение:

if [[ $str =~ ^/ ]]; then echo 1; else echo 0; fi

Ответ 2

Рассмотрим также оператор case, который совместим с большинством оболочек sh:

case "$STRING" in
/*)
    echo 1
    ;;
*)
    echo 0
    ;;
esac

Ответ 3

$ foo="/some/directory/file"
$ [ ${foo:0:1} == "/" ] && echo 1 || echo 0
1
$ foo="[email protected]:/some/directory/file"
$ [ ${foo:0:1} == "/" ] && echo 1 || echo 0
0