Как мы отделяем переменные от букв в сценариях оболочки

Я попробовал напечатать "Собаки самые лучшие". с этим bash script.

#!/bin/bash

ANIMAL="Dog"
echo "$ANIMALs are the best."
exit 

Однако, я получил "лучшие". вместо этого, вместо s in $ANIMALS не отделяется от переменной. Как его отделить?

Ответ 1

С фигурными скобками: echo "${ANIMAL}s are the best."

С кавычками: echo "$ANIMAL" are the best.'

С printf: printf '%ss are the best.\n' "$ANIMAL"

Я бы не использовал цитаты в большинстве случаев. Я не считаю это доступным для чтения, но хорошо знать.

Ответ 2

Просто коснитесь имени переменной фигурными фигурными скобками.

#!/bin/bash

ANIMAL="Dog"
echo "${ANIMAL}s are the best."
exit 

Ответ 3

#!/bin/bash


ANIMAL="Dog"
echo "{$ANIMAL}s are the best."
exit 

Ответ больше не уникален, но правильный...

Ответ 4

Переместите переменную вне кавычек в echo:

#!/bin/bash

ANIMAL="Dog"
echo $ANIMAL"s are the best."
exit 

ИЛИ:

#!/bin/bash

ANIMAL="Dog"
echo "${ANIMAL}s are the best."
exit 

Оба работали для меня

Ответ 5

Бесполезная цитата, бесполезный выход. Финишер script не нуждается в помощи, но выход будет укусить вас при поиске script.

ANIMAL=Dog
echo ${ANIMAL}s are the best.