En regardant une vidéo, j'ai vu ce qui suit:
% more tinyUF.txt
10
4 3
3 8
6 5
Quel est ce %
signe avant more
commande?
shell
command-line
prompt
Maxim Koretskyi
la source
la source
export PS1=%
??$
signe normal en utilisantexport PS1=...
où...
est le remplacement.Réponses:
C'est l'invite du shell, ou plus précisément, c'est l' invite principale du shell ( il y en a plusieurs ). C'est la façon dont le shell dit " allez-y, je suis prêt à participer maintenant ".
L'
%
invite est courante dans lescsh
shells de type tandis quesh
-shells (commebash
etksh93
) utilise habituellement a$
comme invite.L'invite se transforme généralement en
#
pour l'utilisateur root, car un utilisateur suffisamment puissant devrait se souvenir de ce pouvoir en ayant une autre invite (comme le dit la norme POSIX).L'invite principale dans les
sh
shells de type est déterminée par la valeur de la variable shellPS1
.Résumé des commentaires ci-dessous, avec des ajouts:
Le
#
caractère de l'invite racine (utilisé par les deuxsh
et lescsh
shells) coïncide avec le caractère de commentaire de shell commun. Copier et coller une commande en tant que root rendrait la commande collée inopérante si l'invite du shell était également copiée. Notez que cela a#
été adopté comme invite racine avant que le shell ait une convention de commentaire (référence: email de Doug McIlroy ).Les coquilles
es
etrc
de Plan 9 utilisent le;
caractère comme invite par défaut. Une conséquence de cela est que copier et coller une commande, y compris l'invite, signifie toujours que la commande collée est valide (et qu'elle sera exécutée).Un moyen d'activer une invite personnalisée, mais toujours collable par copie, serait d'utiliser
: something ;
, oùsomething
pourrait être le répertoire actuel, le nom d'hôte ou l'heure, par exemple.la source
zsh
(un shell de style Bourne, mais avec beaucoup de fonctionnalités detcsh
). Notez que les shells de type Bourne et csh-like utilisent généralement#
pour les utilisateurs de l'uid 0.rc
shells de type similaire;
y sont utilisés (on peut copier-coller la ligne complète et c'est un code shell valide, même idée que l'#
invite de root étant un commentaire).#...
lignes sont des commentaires lorsqu'elles sont copiées-collées même si ce n'était pas l'intention. Je ne sais pas si c'était l'intention derrière;
dans unerc
ou l' autre, bien que je l' observe est une conséquence pratique.