Skip to content
koalaman edited this page Sep 24, 2016 · 3 revisions

Quote arguments to unset so they're not glob expanded.

Problematic code:

unset foo[index]

Correct code:

unset 'foo[index]'

Rationale:

Arguments to unset are subject to regular glob expansion. This is especially relevant when unsetting indices in arrays, where [..] is considered a glob character group.

In the problematic code, having a file called food in the current directory will result in unset foo[index] expanding to unset food, which will silently succeed without unsetting the element.

Quoting so that the [..] is passed literally to unset solves the issue.

Exceptions:

None.

ShellCheck

Each individual ShellCheck warning has its own wiki page like SC1000. Use GitHub Wiki's "Pages" feature above to find a specific one, or see Checks.

Clone this wiki locally