Tôi chưa bao giờ gặp một vỏ kiểu Bourne cho phép -
trong một tên biến. Chỉ các chữ cái ASCII (của cả hai trường hợp) _
và chữ số được hỗ trợ và ký tự đầu tiên không được là chữ số.
Nếu bạn có một chương trình yêu cầu biến môi trường không khớp với các giới hạn shell, hãy khởi chạy nó với env
chương trình.
env 'strange-name=some value' myprogram
Lưu ý rằng một số shell (ví dụ: dash hiện đại , mksh, zsh) xóa các biến có tên mà chúng không thích từ môi trường. ( Shellshock đã khiến mọi người thận trọng hơn về tên biến môi trường, do đó, các hạn chế có thể trở nên chặt chẽ hơn theo thời gian, không dễ cho phép hơn.) Vì vậy, nếu bạn cần chuyển một biến có tên đặc biệt cho chương trình, hãy truyền trực tiếp không có vỏ ở giữa ( env 'strange-name=some value' sh -c'…; myprogram'
có thể hoặc không thể hoạt động).