La réponse de JohnC explique déjà le backtick. Mais ce que vous vous demandez aussi, c'est le >
rapide. Il s'agit d'une invite de continuation, et elle n'est pas seulement déclenchée par un backtick, mais siempre lorsque votre Shell sait clairement que vous n'avez pas fini de saisir une commande. L'exemple le plus simple est de mettre une continuation de ligne explicite \
à la fin d'une ligne d'entrée (ce qui aide à diviser les longues entrées) :
$ echo \
> hallo
Notez que, tout comme PS1
contrôle l'apparence de l'invite de commande, vous pouvez également définir les paramètres suivants PS2
pour modifier l'invite de continuation, par exemple
$ export PS2="(cont.) "
$ echo \
(cont.) hallo
Il y a de nombreuses raisons pour que la continuation se produise. Un simple backtick est incomplet, mais vous pourriez aussi entrer quelque chose comme
ls -l `which cp`
dans une seule ligne (remarque : il est recommandé d'utiliser la fonction $(
y )
car les parenthèses indiquent clairement où commence et où se termine l'expansion, alors que les apostrophes simples rendent plus difficile de voir où il en manque une. Et l'imbrication...). Autres raisons possibles pour une invite de continuation :
- a manquant
done
après while
o for
- a manquant
fi
après un if
- a manquant
esac
après case
- une parenthèse fermante manquante, par exemple dans les sous-coquilles
(cd $HOME; cat .bashrc)
- une commande manquante après le piping
|
ainsi que l'exécution conditionnelle ||
y &&
(pas &
cependant, puisque cela revient à faire tourner la commande en arrière-plan)
- un guillemet fermant manquant (
'
o "
)
Assez curieusement, une accolade manquante }
après une expansion variable ${
provoque également une invite de continuation, mais échouera en raison de l'espace inséré :
$ echo ${
> PS2}
bash: ${
PS2}: bad substitution