Я ніколи не зустрічав оболонку в стилі Борна, дозволену -
в назві змінної. Підтримуються лише літери ASCII (в будь-якому випадку) _
та цифри, і перший символ не повинен бути цифрою.
Якщо у вас є програма, яка потребує змінної середовища, яка не відповідає обмеженням оболонки, запустіть її з env
програмою.
env 'strange-name=some value' myprogram
Зауважте, що деякі оболонки (наприклад, сучасний тире , mksh, zsh) видаляють змінні, ім'я яких їм не подобається із середовища. ( Shellshock змусив людей бути обережнішими щодо назв змінних оточуючих, тому, ймовірно, обмеження з часом стануть жорсткішими, а не більш дозволеними.) Отже, якщо вам потрібно передати змінну, ім'я якої містить спеціальний символ, передайте її безпосередньо, без оболонки посередині ( env 'strange-name=some value' sh -c'…; myprogram'
може чи не може працювати).