2010-10-05 20 views
1

Supposons que j'ai un programme P qui a un nom de fichier comme argument. Par exemplezsh donne un argument de fichier sans créer de fichier - syntaxe?

P file 

lit le fichier "file" et fait quelque chose avec.

Maintenant, le contenu de "fichier" est parfois très petit, par ex. juste une ligne. Ainsi, au lieu de créer un fichier f avec cette ligne et appeler

P f 

Je veux donner le contenu de la ligne directement comme argument à P. Je ne veux pas écrire un wrapper pour P.

Est-il possible de faire cela dans zsh? Comment serait la syntaxe?

Répondre

4
P <(echo "something something") 

La même chose fonctionne pour bash.

+0

Merci! C'est ce que je voulais. – student

3

Il n'est pas nécessaire d'utiliser la substitution de processus si vous avez déjà une chaîne littérale ou une variable. Vous pouvez utiliser une chaîne ici (qui est un document d'une ligne ici).

Avec une chaîne littérale:

P <<< "f" 

ou, avec une variable:

P <<< "$f" 

Les citations peuvent être omis si vous n'avez pas besoin de préserver les espaces.

Cela fonctionne également dans Bash et ksh.