JohnC's answer already explains the backtick. But what you are also wondering about is the >
prompt. This a continuation prompt, and it is not only triggered by a backtick, but always when your shell clearly knows you're not done entering a command. The easiest example is putting an explicit line continuation \
at the end of an input line (which helps splitting long input):
$ echo \
> hallo
Note that just like PS1
controls the command prompt's look, you can also set PS2
to change the continuation prompt, e.g.
$ export PS2="(cont.) "
$ echo \
(cont.) hallo
There are many reasons for the continuation to occur. A single backtick is incomplete, but you could also enter something like
ls -l `which cp`
in a single line (side-note: It's recommended to use $(
and )
instead, since the parentheses make it obvious where the expansion starts and ends, while single backticks make it more difficult to see where one's missing. And nesting...). Other possible reasons for a continuation prompt:
- a missing
done
after while
or for
- a missing
fi
after an if
- a missing
esac
after case
- a missing closing parenthesis, e.g. in subshells
(cd $HOME; cat .bashrc)
- a missing command after piping
|
as well as conditional execution ||
and &&
(not &
though, since that's just making the command running in background)
- a missing closing quote (
'
or "
)
Curiously enough, a missing brace }
after a variable expansion ${
also causes a continuation prompt, but will fail due to the inserted space:
$ echo ${
> PS2}
bash: ${
PS2}: bad substitution
>
than about the backtick, since that can also occur in other situations