"abc" 'c'` # 3
abc=abc
echo ${abc:1} # bc
в одном случае индексуется с 1, в другом с 0, жопец,
match вообще не пашет
как это понять и не обосраться?
почему не пашет? по-моему, там если матчится — возвращается 0, иначе НЕ 0
а индексация почему разная с 0 и 1
добро пожаловать в мир опенсорца, вам тут не рады
чета не сходится echo `expr match "abc" 'c'` # 0 echo `expr match "abc" 'd'` # 0
Бактики выкидывай сходу, они нечитабельны. А вопрос совсем не понятен. Match работает с регулярными выражениями, в строке было найдено выражение "с" и поэтому ты получил 0 - успешный код выхода.
Тут вообще нету индексации
про бактики не понял, матч работает не так, он сверяется с НАЧАЛОМ
"`" выкидывай и используй $(...) Это считается старой записью ещё в POSIX, и не читабельно. Попробуй заметь их в такой записи: echo "`...`"
У телеги бактики ещё и управлящими символами являются -_-
$(...) вообще не понимаю, ( ) вроде как вычисление в subshell, а подстановка $string or ```${...} как в общем найти сколько символов совпадает в строке abcd подстроки cd какой будет regexp?
и во вложенность не могут как $(echo $(echo blah))
Monospace же. Очень удобно ими текст оборачивать, чтобы не интерпретировался как ссылка/хэштег/etc
regexp не умеет считать, это просто язык описания строки
что делает $(command) такого не встречал
иди почитай 1. https://mywiki.wooledge.org/BashPitfalls 2. https://mywiki.wooledge.org/BashGuide 3. https://mywiki.wooledge.org/BashFAQ
спасибо, почитаю как дочитаю книгу, но думаю книги вполне хватит, язык совершенно не походит для чего-то серьезного
Обсуждают сегодня