Intereting Posts
Ядро ест память, но никогда не выпускает анализировать вывод команды только для отображения строк на основе диапазона данных из определенного столбца Сделать apt-get обновление и автоматизацию обновления и без присмотра ksh: сохранение вывода команды awk в массиве Используйте Sed Regex Capture Group в методе Replace Section Поиск слова и его замена во всем файле с помощью Egrep Эмулировать двунаправленный свиток с помощью горячей клавиши + трекбол sed, как заменить стандартный ввод Samba 4.5.12 в Debian 9 продолжает запрашивать аутентификацию в Windows 7 Можем ли мы поменять местами одну установку Linux на другую? Как автоматически обрабатывать небольшое дисковое пространство? Команда «date -d» не работает в контейнере Docker Alpine Linux Bash не правильно вычисляет длину подсказки Отправить текст / ввод ко всем вкладкам Настроить SELinux, чтобы позволить демонам использовать файлы в нестандартных местоположениях

Echo не печатает правильное значение для переменной

У меня есть переменная в моем сценарии оболочки, которая не будет правильно решена во время выполнения:

вход

#!/bin/sh SERVER_ERL_ARGS="+K true +A30 +P 1048576 \ -kernel inet_default_connect_options [{nodelay,true}]" echo ${SERVER_ERL_ARGS} 

Вывод:

 +K true +A30 +P 1048576 -kernel inet_default_connect_options a 

Любая причина такого поведения и как я могу его исправить.

Вы не указали расширение переменной в своем echo , и у вас есть файл с именем a в текущем каталоге.

[{nodelay,true}] действует как шаблон подстановки имени файла, который будет соответствовать имени файла с именем a .

Итак, укажите переменную, но было бы лучше использовать printf :

 printf '%s\n' "$SERVER_ERL_ARGS" 

Смотрите также:

  • Последствия для безопасности, забывающие процитировать переменную в оболочках bash / POSIX

  • Почему printf лучше, чем эхо?