Функция Bash, вернуть жирный текст

Я пытаюсь написать простую функцию bash, которая возвращает жирный текст. Код, который я написал до сих пор:

function txt_bold() {<br>
    echo -e '\033[1m$1\033[0m$2'<br>
    tput sgr0<br>
}

Когда я пишу txt_bold "This is bold" "And this in plain text" возвращает "$1$2" ($1, выделенный жирным шрифтом). Что я здесь не так делаю?

1 ответ

Решение

Использование " вместо ',

function txt_bold() {
  echo -e "\033[1m$1\033[0m$2"
  tput sgr0
}

короткий

В одинарных кавычках переменные не раскрываются.

Долго

Ниже нижняя строка этой статьи, которая может помочь вам понять это: в чем разница между одинарными и двойными кавычками в оболочке Bash?

Двойные кавычки

  • Используется, когда вы хотите заключить переменные или использовать расширение оболочки внутри строки.
  • Все символы внутри интерпретируются как обычные символы, кроме $ или `, которые будут раскрыты в оболочке.

Одинарные кавычки

  • Все символы в одинарных кавычках интерпретируются как строковые символы.
Другие вопросы по тегам