web-dev-qa-db-fra.com

Que fait-on (guillemet simple) dans le terminal?

Si je tape '(guillemet simple, à côté du bouton <enter>) dans le terminal, puis appuyez sur Entrée, il passe à un message >. De quoi s'agit-il exactement, à quoi sert-il et quel type de commandes puis-je entrer ici?

Je peux <Ctrl-C> en sortir mais c'est tout ce que j'ai.

8
Insperatus

Un terminal n'accepte pas seulement le code d'une ligne. En fait, vous pouvez écrire du code (en tant que script bash is un langage de programmation) sur plusieurs lignes.

Par exemple, si vous écrivez:

while true; do <enter>

il affichera exactement le même > que celui présenté à votre cas également. Il vous permet de saisir plus de commandes. Maintenant, si vous tapez:

echo "Cake is a lie" <enter>
sleep 1              <enter>
done                 <enter>

il commencera à exécuter votre code (ce qui, dans cette occasion, est simplement une boucle while générant une chaîne de caractères toutes les secondes). Cela vous permet de construire de petits programmes sans avoir à les écrire dans un code à une ligne, comme ceci:

while true; do echo "Cake is a lie"; sleep 1; done

ce qui, dans ce cas, ce n’est pas un problème, mais cela pourrait être, dans d’autres occasions (avec plus de code à écrire).

Donc, il est généralement utilisé pour écrire plusieurs lignes de code. Dans votre cas, le shell reconnaît que votre code ne contient pas un nombre pair de ', ce qui ne peut en aucun cas fonctionner (il en va de même pour "). Donc, cela vous permet d’écrire plus de code afin de compléter ce que vous avez laissé.

Par exemple, si vous donnez comme commande:

echo "Cake is a <enter>

alors il vous laissera continuer. Et en effet, vous pouvez:

lie"            <enter>

Il produira normalement:

Cake is a
lie
6
hytromo