A resposta de JohnC já explica o backtick. Mas o que você também está se perguntando é o >
prompt. Isso é um prompt de continuação e não é apenas acionado por um backtick, mas sempre quando seu shell sabe claramente que você não terminou de digitar um comando. O exemplo mais fácil é colocar uma continuação de linha explícita \
no final de uma linha de entrada (o que ajuda a dividir a entrada longa):
$ echo \
> hallo
Observe que, assim como PS1
controla a aparência do prompt de comando, você também pode PS2
alterar o prompt de continuação, por exemplo
$ export PS2="(cont.) "
$ echo \
(cont.) hallo
Existem muitas razões para a continuação ocorrer. Um único backtick está incompleto, mas você também pode inserir algo como
ls -l `which cp`
em uma única linha (nota lateral: É recomendado para usar $(
e )
em vez disso, uma vez que os parênteses tornar óbvio que a expansão começa e termina, enquanto backticks individuais tornam mais difícil para ver onde um está desaparecido e aninhamento ....). Outras razões possíveis para um prompt de continuação:
- uma falta
done
depois while
oufor
- uma falta
fi
depois de umif
- uma falta
esac
depoiscase
- um parêntese de fechamento ausente, por exemplo, em subcascas
(cd $HOME; cat .bashrc)
- um comando ausente após a tubulação
|
, bem como a execução condicional ||
e &&
( &
embora não , já que isso está apenas executando o comando em segundo plano)
- uma cotação de fechamento ausente (
'
ou "
)
Curiosamente, uma chave ausente }
após uma expansão variável ${
também causa um prompt de continuação, mas falhará devido ao espaço inserido:
$ echo ${
> PS2}
bash: ${
PS2}: bad substitution