Аналог echo $VAR | sed -e 's/.txt$/.htm/' - если нужно сменить расширение файла, например
stasikos@pip-boy4000:~$ VAR=something.txt
stasikos@pip-boy4000:~$ echo ${VAR/.txt/.htm}
something.htm
Или совсем убрать
stasikos@pip-boy4000:~$ echo ${VAR%.txt}
something
Поменять регистр символов
stasikos@pip-boy4000:~$ echo ${VAR^^}
SOMETHING.TXT
stasikos@pip-boy4000:~$ VAR=SoMeThInG.txt
stasikos@pip-boy4000:~$ echo ${VAR,,}
something.txt
Теперь немножко про удобную замену такой вещи как
if [ -z "$VAR" ] ; then ...
fi
stasikos@pip-boy4000:~$ VAR=some
stasikos@pip-boy4000:~$ echo ${VAR:-default_value}
some
stasikos@pip-boy4000:~$ VAR=''
stasikos@pip-boy4000:~$ echo ${VAR:-default_value}
default_value
Это можно использовать при чтении, скажем, конфигурационного файла для скрипта, или для определения дефолтных значений при отсутствии значений переменных окружения
Или выкинуть ошибку если значение переменной не установлено:
stasikos@pip-boy4000:~$ echo ${VAR:?was not configured}
bash: VAR: was not configured
Больше интересного чтива можно найти в man bash по словам "Parameter Expansion"
Комментариев нет:
Отправить комментарий