Non Portable Character Class Low

Script uses 'A-Z' and 'a-z' for case conversion, which doesn't support accented or non-Latin characters. To fix, use POSIX character classes for better internationalization support.

Detector ID
shell/non-portable-character-class@v1.0
Category
Common Weakness Enumeration (CWE) external icon
-
Tags
-

Noncompliant example

1
2# Noncompliant: Uses `A-Z` which doesn't support accented uppercase letters.
3uppercase_name=$(echo "JOSE" | tr 'A-Z' 'a-z' | tr 'a-z' 'A-Z')

Compliant example

1
2# Compliant: Uses `[:upper:]` and `[:lower:]` to properly handle all case conversions.
3uppercase_name=$(echo "JOSE" | tr '[:upper:]' '[:lower:]' | tr '[:lower:]' '[:upper:]')