Skip to content

fix: handle quoted ID values in /etc/os-release parsing#310792

Open
Jah-yee wants to merge 1 commit intomicrosoft:mainfrom
Jah-yee:fix/devcontainer-os-release-parsing
Open

fix: handle quoted ID values in /etc/os-release parsing#310792
Jah-yee wants to merge 1 commit intomicrosoft:mainfrom
Jah-yee:fix/devcontainer-os-release-parsing

Conversation

@Jah-yee
Copy link
Copy Markdown

@Jah-yee Jah-yee commented Apr 16, 2026

Good day

Problem

The check-requirements-linux.sh script fails to parse /etc/os-release on Rocky Linux 8.5 (and potentially other distros that quote their ID values).

The script uses:

OS_ID="ubuntu"

This regex ID=([^"]+) only matches unquoted values. However, Rocky Linux 8.5 uses:

ID="rocky"

With quotes, the grep fails to match, resulting in an empty OS_ID, which causes the script to exit with code 1.

Solution

Use POSIX-compliant . /etc/os-release && echo "$ID" to source the file directly. This approach:

  • Works with both quoted (ID="rocky") and unquoted (ID=ubuntu) values
  • Is POSIX-compatible (uses . not source)
  • Creates a subshell so no variables leak into the parent environment

Testing

Verified with simulated Rocky Linux /etc/os-release (quoted) and Ubuntu/Alpine (unquoted) - all parse correctly.

Fixes

Fixes #232159

Thank you for your attention. If there are any issues or suggestions, please leave a comment and I will address them promptly.

Warmly,
RoomWithOutRoof

Devcontainer setup fails on Rocky Linux 8.5 because the script
uses grep -Eo 'ID=([^"]+)' which only matches unquoted values.
Rocky Linux 8.5 uses ID="rocky" (quoted) in /etc/os-release.

Fix by sourcing /etc/os-release directly, which lets the shell
properly handle both quoted and unquoted values.

Fixes microsoft#232159
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Devcontainer setup ad-hoc parsing fails on Rocky 8.5

2 participants