Як уникнути місця після змінної bash у рядку?


17

У мене є змінна для кольору. Я використовую його для встановлення кольору рядків, оцінюючи його всередині рядка. Однак мені потрібно вказати пробіл після імені (щоб ім’я не містило частини тексту). Це часом виглядає погано.

Як я можу уникнути використання (друку) цього простору?

Приклад (Скажімо, що Red=1і NC=2):

echo -e "$Red Note: blabla$NC".

Вихід:

1 Note: blabla2.

Очікуваний вихід:

1Note: blabla2.

Відповіді:



4

Що вам слід звикнути до використання, це printf:

printf '%sNote: blabla%s\n' "$Red" "$NC"

Де кожен %sзамінює змінну. І -eце не потрібно, оскільки printf приймає переносні значення \ n, \ t тощо на портативний спосіб.

Пам'ятайте, що echo -eце не переноситься для інших оболонок.

Інші варіанти:

Ви можете використовувати дві команди, що об'єднують їх вихід:

echo -ne "$Red"; echo -e "Note: blabla$NC"

Ви можете використовувати просте з'єднання рядків:

echo -e "$Red""Note: blabla$NC"

Або ви можете скористатися, { }щоб уникнути плутань у текстовому імені:

echo -e "${Red}Note: blabla$NC"
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.