command substitutions
```sh
foo=$(
bar #inline
) #trailing
```
```sh
foo=$(
bar #inline
) #trailing
```
if clauses
```sh
if foo; then
bar #inline
fi #trailing
```
```sh
if foo; then
bar #inline
fi #trailing
```
Altogether that looks like a weak effort to align with the above inline comment, as it is done for case.
```sh
case $foo in
?) bar;; #inline
esac #trailing
```
```sh
case $foo in
?) bar ;; #inline
esac #trailing
```
Nothing of the sort is being done to loop constructs (for, while and until), for which output is the same as input.
```sh
for foo; do
bar #inline
done #trailing
while foo; do
bar #inline
done #trailing
until foo; do
bar #inline
done #trailing
```
```sh
for foo; do
bar #inline
done #trailing
while foo; do
bar #inline
done #trailing
until foo; do
bar #inline
done #trailing
```
I'm not sure how often trailing comments on these constructs are used in practice, and whether they really are most commonly used for a continuation of the previous line (I'm inclined to doubt that is the case, but I may be biased).
Some extra whitespace is added before trailing comments after
brace groups
```sh { foo #inline } #trailing foo() { bar #inline } #trailing ``` ```sh { foo #inline } #trailing foo() { bar #inline } #trailing ```subshells
```sh ( foo #inline ) #trailing foo() ( bar #inline ) #trailing ``` ```sh ( foo #inline ) #trailing foo() ( bar #inline ) #trailing ```command substitutions
```sh foo=$( bar #inline ) #trailing ``` ```sh foo=$( bar #inline ) #trailing ```
```sh if foo; then bar #inline fi #trailing ``` ```sh if foo; then bar #inline fi #trailing ```if
clausesAltogether that looks like a weak effort to align with the above inline comment, as it is done for
```sh case $foo in ?) bar;; #inline esac #trailing ``` ```sh case $foo in ?) bar ;; #inline esac #trailing ```case
.Nothing of the sort is being done to loop constructs (
```sh for foo; do bar #inline done #trailing while foo; do bar #inline done #trailing until foo; do bar #inline done #trailing ``` ```sh for foo; do bar #inline done #trailing while foo; do bar #inline done #trailing until foo; do bar #inline done #trailing ```for
,while
anduntil
), for which output is the same as input.I'm not sure how often trailing comments on these constructs are used in practice, and whether they really are most commonly used for a continuation of the previous line (I'm inclined to doubt that is the case, but I may be biased).