Bash: интерполяция строк в неправильном порядке? - PullRequest
0 голосов
/ 03 апреля 2020

Я хотел бы создать строку, содержащую аргумент:

function praise () {
  echo "{$1} is great"
} 

Однако, когда я запускаю praise BillyBob, я получаю is great BillyBob. Что я делаю не так?

Ответы [ 2 ]

0 голосов
/ 04 апреля 2020

Я разобрался в проблеме. Функция была у меня .bash_profile. Когда я source этот файл, bash не обновляет функцию похвалы с какой-либо версией в файле, хотя псевдонимы и переменные, такие как PS1, обновляются. Я не знаю, почему похвала не обновляется, но открытие экземпляра fre sh bash решает проблему. Вкладка терминала, в которой я тестировал, должна была иметь устаревшую версию этой функции, которая вызывала ошибку (возможно, проблема с новой строкой, но на данный момент трудно сказать). Мой код работает, как и ожидалось, в новой вкладке.

0 голосов
/ 04 апреля 2020

Попробуйте это:

  function praise {
    echo "${1} is great"
  } 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...