Expected a '}'. If you have one, try a ; or \n in front of it. Open
- Exclude checks
You need a space after the '{'. Open
{{% else %}}
- Read upRead up
- Exclude checks
You need a space after the '{'.
Problematic code:
foo() {echo "hello world;}
Correct code:
foo() { echo "hello world;}
Rationale:
{
is only recognized as the start of a command group when it's a separate token.
If it's not a separate token, like in the problematic example, it will be considered a literal character, as if writing "{echo"
with quotes, and therefore usually cause a syntax error.
Exceptions:
None.
Notice
Original content from the ShellCheck https://github.com/koalaman/shellcheck/wiki.
Missing '}'. Fix any mentioned problems and try again. Open
- Read upRead up
- Exclude checks
Unexpected ..
Note: There is a [known bug](../issues/1036) in the current version when [directives](../wiki/Directive) appear within then
clauses of if
blocks that causes Shellcheck to report SC1072 on otherwise valid code. Avoid using directives within then
clauses - instead place them at the top of the if
block or another enclosing block. This is fixed on the online version and the next release.
See Parser Error.
Notice
Original content from the ShellCheck https://github.com/koalaman/shellcheck/wiki.
You need a space after the '{'. Open
{{% endif %}}
- Read upRead up
- Exclude checks
You need a space after the '{'.
Problematic code:
foo() {echo "hello world;}
Correct code:
foo() { echo "hello world;}
Rationale:
{
is only recognized as the start of a command group when it's a separate token.
If it's not a separate token, like in the problematic example, it will be considered a literal character, as if writing "{echo"
with quotes, and therefore usually cause a syntax error.
Exceptions:
None.
Notice
Original content from the ShellCheck https://github.com/koalaman/shellcheck/wiki.
This } is literal. Check expression (missing ;/\n?) or quote it. Open
{{% else %}}
- Read upRead up
- Exclude checks
This {
/}
is literal. Check expression (missing ;/\n?
) or quote it.
Problematic code:
rmf() { rm -f "$@" }
or
eval echo \${foo}
Correct code:
rmf() { rm -f "$@"; }
and
eval "echo \${foo}"
Rationale:
Curly brackets are normally used as syntax in parameter expansion, command grouping and brace expansion.
However, if they don't appear alone at the start of an expression or as part of a parameter or brace expansion, the shell silently treats them as literals. This frequently indicates a bug, so ShellCheck warns about it.
In the example function, the }
is literal because it's not at the start of an expression. We fix it by adding a ;
before it.
In the example eval, the code works fine. However, we can quiet the warning and follow good practice by adding quotes around the literal data.
ShellCheck does not warn about {}
, since this is frequently used with find
and rarely indicates a bug.
Exceptions
This error is harmless when the curly brackets are supposed to be literal, in e.g. awk {'print $1'}
. However, it's cleaner and less error prone to simply include them inside the quotes: awk '{print $1}'
.
Notice
Original content from the ShellCheck https://github.com/koalaman/shellcheck/wiki.
This } is literal. Check expression (missing ;/\n?) or quote it. Open
{{% else %}}
- Read upRead up
- Exclude checks
This {
/}
is literal. Check expression (missing ;/\n?
) or quote it.
Problematic code:
rmf() { rm -f "$@" }
or
eval echo \${foo}
Correct code:
rmf() { rm -f "$@"; }
and
eval "echo \${foo}"
Rationale:
Curly brackets are normally used as syntax in parameter expansion, command grouping and brace expansion.
However, if they don't appear alone at the start of an expression or as part of a parameter or brace expansion, the shell silently treats them as literals. This frequently indicates a bug, so ShellCheck warns about it.
In the example function, the }
is literal because it's not at the start of an expression. We fix it by adding a ;
before it.
In the example eval, the code works fine. However, we can quiet the warning and follow good practice by adding quotes around the literal data.
ShellCheck does not warn about {}
, since this is frequently used with find
and rarely indicates a bug.
Exceptions
This error is harmless when the curly brackets are supposed to be literal, in e.g. awk {'print $1'}
. However, it's cleaner and less error prone to simply include them inside the quotes: awk '{print $1}'
.
Notice
Original content from the ShellCheck https://github.com/koalaman/shellcheck/wiki.
You need a space after the '{'. Open
{{% endif %}}
- Read upRead up
- Exclude checks
You need a space after the '{'.
Problematic code:
foo() {echo "hello world;}
Correct code:
foo() { echo "hello world;}
Rationale:
{
is only recognized as the start of a command group when it's a separate token.
If it's not a separate token, like in the problematic example, it will be considered a literal character, as if writing "{echo"
with quotes, and therefore usually cause a syntax error.
Exceptions:
None.
Notice
Original content from the ShellCheck https://github.com/koalaman/shellcheck/wiki.
Couldn't parse this brace group. Open
{{% endif %}}
- Read upRead up
- Exclude checks
Couldn't parse this ...
This parsing error points to the structure ShellCheck was trying to parse when a parser error occurred. See [[Parser error]] for more information.
Notice
Original content from the ShellCheck https://github.com/koalaman/shellcheck/wiki.
The mentioned parser error was in this brace group. Open
{{% endif %}}
- Read upRead up
- Exclude checks
The mentioned parser error was in ...
This info warning points to the start of what ShellCheck was parsing when it failed. See [[Parser error]] for example and information.
Notice
Original content from the ShellCheck https://github.com/koalaman/shellcheck/wiki.
You need a space after the '{'. Open
{{% if 'sle' in product %}}
- Read upRead up
- Exclude checks
You need a space after the '{'.
Problematic code:
foo() {echo "hello world;}
Correct code:
foo() { echo "hello world;}
Rationale:
{
is only recognized as the start of a command group when it's a separate token.
If it's not a separate token, like in the problematic example, it will be considered a literal character, as if writing "{echo"
with quotes, and therefore usually cause a syntax error.
Exceptions:
None.
Notice
Original content from the ShellCheck https://github.com/koalaman/shellcheck/wiki.
This } is literal. Check expression (missing ;/\n?) or quote it. Open
{{% endif %}}
- Read upRead up
- Exclude checks
This {
/}
is literal. Check expression (missing ;/\n?
) or quote it.
Problematic code:
rmf() { rm -f "$@" }
or
eval echo \${foo}
Correct code:
rmf() { rm -f "$@"; }
and
eval "echo \${foo}"
Rationale:
Curly brackets are normally used as syntax in parameter expansion, command grouping and brace expansion.
However, if they don't appear alone at the start of an expression or as part of a parameter or brace expansion, the shell silently treats them as literals. This frequently indicates a bug, so ShellCheck warns about it.
In the example function, the }
is literal because it's not at the start of an expression. We fix it by adding a ;
before it.
In the example eval, the code works fine. However, we can quiet the warning and follow good practice by adding quotes around the literal data.
ShellCheck does not warn about {}
, since this is frequently used with find
and rarely indicates a bug.
Exceptions
This error is harmless when the curly brackets are supposed to be literal, in e.g. awk {'print $1'}
. However, it's cleaner and less error prone to simply include them inside the quotes: awk '{print $1}'
.
Notice
Original content from the ShellCheck https://github.com/koalaman/shellcheck/wiki.
This } is literal. Check expression (missing ;/\n?) or quote it. Open
{{% if 'sle' in product %}}
- Read upRead up
- Exclude checks
This {
/}
is literal. Check expression (missing ;/\n?
) or quote it.
Problematic code:
rmf() { rm -f "$@" }
or
eval echo \${foo}
Correct code:
rmf() { rm -f "$@"; }
and
eval "echo \${foo}"
Rationale:
Curly brackets are normally used as syntax in parameter expansion, command grouping and brace expansion.
However, if they don't appear alone at the start of an expression or as part of a parameter or brace expansion, the shell silently treats them as literals. This frequently indicates a bug, so ShellCheck warns about it.
In the example function, the }
is literal because it's not at the start of an expression. We fix it by adding a ;
before it.
In the example eval, the code works fine. However, we can quiet the warning and follow good practice by adding quotes around the literal data.
ShellCheck does not warn about {}
, since this is frequently used with find
and rarely indicates a bug.
Exceptions
This error is harmless when the curly brackets are supposed to be literal, in e.g. awk {'print $1'}
. However, it's cleaner and less error prone to simply include them inside the quotes: awk '{print $1}'
.
Notice
Original content from the ShellCheck https://github.com/koalaman/shellcheck/wiki.
This } is literal. Check expression (missing ;/\n?) or quote it. Open
{{% if 'sle' in product %}}
- Read upRead up
- Exclude checks
This {
/}
is literal. Check expression (missing ;/\n?
) or quote it.
Problematic code:
rmf() { rm -f "$@" }
or
eval echo \${foo}
Correct code:
rmf() { rm -f "$@"; }
and
eval "echo \${foo}"
Rationale:
Curly brackets are normally used as syntax in parameter expansion, command grouping and brace expansion.
However, if they don't appear alone at the start of an expression or as part of a parameter or brace expansion, the shell silently treats them as literals. This frequently indicates a bug, so ShellCheck warns about it.
In the example function, the }
is literal because it's not at the start of an expression. We fix it by adding a ;
before it.
In the example eval, the code works fine. However, we can quiet the warning and follow good practice by adding quotes around the literal data.
ShellCheck does not warn about {}
, since this is frequently used with find
and rarely indicates a bug.
Exceptions
This error is harmless when the curly brackets are supposed to be literal, in e.g. awk {'print $1'}
. However, it's cleaner and less error prone to simply include them inside the quotes: awk '{print $1}'
.
Notice
Original content from the ShellCheck https://github.com/koalaman/shellcheck/wiki.
You need a space after the '{'. Open
{{% else %}}
- Read upRead up
- Exclude checks
You need a space after the '{'.
Problematic code:
foo() {echo "hello world;}
Correct code:
foo() { echo "hello world;}
Rationale:
{
is only recognized as the start of a command group when it's a separate token.
If it's not a separate token, like in the problematic example, it will be considered a literal character, as if writing "{echo"
with quotes, and therefore usually cause a syntax error.
Exceptions:
None.
Notice
Original content from the ShellCheck https://github.com/koalaman/shellcheck/wiki.
You need a space after the '{'. Open
{{% if 'sle' in product %}}
- Read upRead up
- Exclude checks
You need a space after the '{'.
Problematic code:
foo() {echo "hello world;}
Correct code:
foo() { echo "hello world;}
Rationale:
{
is only recognized as the start of a command group when it's a separate token.
If it's not a separate token, like in the problematic example, it will be considered a literal character, as if writing "{echo"
with quotes, and therefore usually cause a syntax error.
Exceptions:
None.
Notice
Original content from the ShellCheck https://github.com/koalaman/shellcheck/wiki.
This } is literal. Check expression (missing ;/\n?) or quote it. Open
{{% endif %}}
- Read upRead up
- Exclude checks
This {
/}
is literal. Check expression (missing ;/\n?
) or quote it.
Problematic code:
rmf() { rm -f "$@" }
or
eval echo \${foo}
Correct code:
rmf() { rm -f "$@"; }
and
eval "echo \${foo}"
Rationale:
Curly brackets are normally used as syntax in parameter expansion, command grouping and brace expansion.
However, if they don't appear alone at the start of an expression or as part of a parameter or brace expansion, the shell silently treats them as literals. This frequently indicates a bug, so ShellCheck warns about it.
In the example function, the }
is literal because it's not at the start of an expression. We fix it by adding a ;
before it.
In the example eval, the code works fine. However, we can quiet the warning and follow good practice by adding quotes around the literal data.
ShellCheck does not warn about {}
, since this is frequently used with find
and rarely indicates a bug.
Exceptions
This error is harmless when the curly brackets are supposed to be literal, in e.g. awk {'print $1'}
. However, it's cleaner and less error prone to simply include them inside the quotes: awk '{print $1}'
.
Notice
Original content from the ShellCheck https://github.com/koalaman/shellcheck/wiki.
Unexpected trailing spaces found. Open
}
- Exclude checks