que signifie «ls» sous Linux?

13

J'ai accidentellement tapé ls'et j'ai eu une interface interactive: > qu'est-ce que c'est?

J'ai essayé la recherche sur Internet, je n'ai rien trouvé.

Anders Lind
la source

Réponses:

34

Ce comportement est distro agnostique. Vous aviez ouvert un devis, le shell affiche $PS2la variable globale ( $PS2est le> dans votre sortie) tandis que le deuxième devis est manquant.

Vous pouvez changer la PS2 avec ce que vous voulez à la place:

Ex: export PS2=">>>"

La valeur de $ PS2 est imprimée (après expansion) comme invite secondaire pour plus de données lorsque bash s'exécute de manière interactive. Voir man bash, sous PROMPTING.

Gilles Quenot
la source
2
Vous avez de bons yeux pour repérer la citation unique errante.
1
Informations supplémentaires: pour sortir, entrez simplement un autre devis ou appuyez sur ctrl-c.
octobre
Pas exactement lire stdin; vous pouvez également saisir un devis sur plusieurs lignes dans un script ou quelque chose; mais l'invite secondaire s'affiche dans une session interactive lorsque vous entrez une nouvelle ligne dans une chaîne entre guillemets, une boucle inachevée, etc.
tripleee
1
Mieux vaut utiliser ctrl-d au lieu de ctrl-c comme EOF (End Of File)
Gilles Quenot
merci, BTW que signifie PS2?
Anders Lind
5
-bash-4.1$ ls'
>

cela signifie que vous ouvrez une longue chaîne avec 'et que vous ne la fermez pas, donc bash attend la chaîne (argument) terminée par'

Utilisez lssans aucun 'à la fin.

Mateusz
la source
0

"PS" signifie (probablement) "chaîne d'invite". PS1 est ce que le shell affichera comme invite de ligne de commande de votre processus shell. PS2 s'affiche lorsqu'une saisie supplémentaire est requise pour terminer la commande (chaîne sans guillemets, lecture depuis stdin, etc.). man bashpuis recherchez PS1 ou PS2 ( /PS[12]<CR>)

aqn
la source