48 votes

Que signifie cet étrange symbole ":>" dans bash ?

J'ai trouvé quelque chose dans un script, mais n'appartenant pas au script principal. Il y avait :> en ligne.

Pourriez-vous m'expliquer ce que cela signifie ?

:> file
while read A B C D E; do echo "$A;$B;$D;$E;$C" >> file; done < otherfile

46voto

DavidPostill Points 140654

Il y avait :> dans une ligne d'un script bash script. Qu'est-ce que cela signifie ?

:> file

C'est un raccourci pour dire :

  • Si file n'existe pas, alors créez-le, sinon tronquez-le à 0 des octets.

Cela signifie que vous pouvez être sûr que file existe et il est vide.

Vous pouvez également utiliser > file mais :> file est plus facile à transporter.

Voir la question de Stack Overflow À quoi sert l'élément ':' (deux points) de GNU Bash ? pour plus d'informations.

29voto

Arkadiusz Drabczyk Points 2334

Cela ressemble à une façon fantaisiste de créer un nouveau fichier. Dans les bash : est une commande nulle :

$ type : 
: is a shell builtin 
$ help : 
:: :
    Null command.

    No effect; the command does nothing.

    Exit Status:
    Always succeeds.

> redirige la sortie de : dans un fichier.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X