Карточка Middle Bash-скрипты обновлено

Подстановки параметров

Вопрос

Что дают ${v:-d}, ${v:?msg}, ${#v}, ${f%.log}, ${p##*/}, ${s//a/b}?

Попробуйте сами

Ответьте про себя или вслух, потом откройте ответ и сверьтесь.

Показать ответ и разбор

Коротко

${v:-d}: значение или d, если пусто. ${v:?msg}: упасть с сообщением, если пусто. ${v}: длина. ${f%.log}: срезать кратчайший суффикс .log. ${p/}: срезать самый длинный префикс до /, то есть имя файла. ${s//a/b}: заменить все a на b.

Ответ

${v:-d}: значение или d, если пусто. ${v:?msg}: упасть с сообщением, если пусто. ${#v}: длина. ${f%.log}: срезать кратчайший суффикс .log. ${p##*/}: срезать самый длинный префикс до /, то есть имя файла. ${s//a/b}: заменить все a на b.

Разбор

${v:-d}: значение или d, если пусто. ${v:?msg}: упасть с сообщением, если пусто. ${#v}: длина. ${f%.log}: срезать кратчайший суффикс .log. ${p##*/}: срезать самый длинный префикс до /, то есть имя файла. ${s//a/b}: заменить все a на b.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.