Standar POSIX pada bagian shell IEEE Std 1003.1-2008 / IEEE POSIX P1003.2/ISO 9945.2Standar Shell dan Alat tidak menentukan konvensi leksikal untuk nama variabel, namun jika dilihat sepintas pada sumber mengungkapkan bahwa ia menggunakan sesuatu yang mirip dengan
[a-zA-Z_]+[a-zA-Z0-9_]*
(Sunting:Menambahkan garis bawah yang hilang di kelas karakter ke-2.)
Catatan singkat, karena beberapa shell tidak mendukung + di regex, regex yang berpotensi lebih portabel adalah:
[a-zA-Z_]{1,}[a-zA-Z0-9_]{0,}
Dari Grup Terbuka:
String ini memiliki formname=value; nama tidak boleh mengandung karakter '='. Agar nilai dapat dibawa-bawa di seluruh sistem yang sesuai dengan IEEE Std 1003.1-2001, nilai harus terdiri dari karakter dari kumpulan karakter portabel (kecuali NUL dan seperti yang ditunjukkan di bawah ).
Jadi nama dapat berisi karakter apapun kecuali =dan NUL, tetapi:
Nama variabel lingkungan yang digunakan oleh utilitas di Shell andUtilities volume IEEE Std1003.1-2001 hanya terdiri dari huruf besar, angka, dan '_'(garis bawah) dari karakter yang ditentukan dalam Kumpulan Karakter Portabel dan jangan dimulai dengan angka . Karakter lain mungkin diizinkan oleh implementasi; aplikasi harus mentolerir keberadaan nama tersebut.
Jadi meskipun namanya mungkin valid, shell Anda mungkin tidak mendukung apa pun selain huruf, angka, dan garis bawah.