У мене є однорядковий файл зі значенням, збереженим у ньому як рядок:
server-name-2009-August-9-AMI
Назва файлу - server_name. Який найкоротший, найелегантніший спосіб перенести це значення в змінну за допомогою bash script?
У мене є однорядковий файл зі значенням, збереженим у ньому як рядок:
server-name-2009-August-9-AMI
Назва файлу - server_name. Який найкоротший, найелегантніший спосіб перенести це значення в змінну за допомогою bash script?
Відповіді:
Ви можете використовувати readкоманду. Якщо ви не надаєте жодної змінної, рядок автоматично зберігається в змінну REPLYв Bash. Якщо ви надаєте змінну singe, рядок зберігається у цій змінній. Якщо ви надаєте кілька змінних, Bash розділить рядок у вигляді слів (розбиття здійснюється на пробіли), намагаючись ввести одне слово у кожну змінну. (Якщо слів більше, ніж змінних, кожна змінна отримує одне слово, але остання отримує решту рядка.)
Приклад:
telemachus ~ $ read < buff
telemachus ~ $ echo $REPLY
#!/usr/bin/env perl
telemachus ~ $ read LINE < buff
telemachus ~ $ echo $LINE
#!/usr/bin/env perl
Зауважте, що змінна призначається без знака долара ( REPLYабо LINE), але коли ви її використовуєте, вам потрібно $REPLYабо $LINE.
Тож ви хочете щось подібне:
read SERVER < /path/to/server_name
Я рекомендую використовувати повний шлях до файлу, який ви хочете прочитати, а не припускати, що два сценарії будуть в одному каталозі.
Я не клянусь, що це найелегантніше рішення.
$(< file)більше$(cat file).