J'ai un fichier comme celui-ci.xargs J'ai déjà un ensemble de commandes complet
rm a.txt
mkdir foo
cp a.doc docs
Je suis habitué à xargs mais la commande suivante ne fait rien.
cat commands.txt | xargs -l1
J'ai un fichier comme celui-ci.xargs J'ai déjà un ensemble de commandes complet
rm a.txt
mkdir foo
cp a.doc docs
Je suis habitué à xargs mais la commande suivante ne fait rien.
cat commands.txt | xargs -l1
Tu le fais de la mauvaise manière! Si votre fichier contient toutes les commandes shell, traitez-le comme un script shell.
#!/bin/bash
rm a.txt
mkdir foo
cp a.doc docs
puis sur la ligne de commande, chmod u+x commands.txt
./commands.txt
la convention de nommage "defacto" pour le script shell se termine avec l'extension .sh
, bien qu'il puisse être quoi que ce soit. Donc, essayez de nommer votre script comme "Sh" extension
ou 'sh commands.txt' – hasen
Erm:
$ mv commands.txt commands.sh
$ chmod + x command.sh
$ ./command.sh
Si vous n'avez pas besoin pour le rendre exécutable, la source dans votre shell courant:
bash/ksh/...: . commands.txt
csh/...: source commands.txt
Si vous n'êtes pas les commandes dans un fichier, mais la sortie d'un programme que vous pouvez utiliser GNU ne parallèle http://www.gnu.org/software/parallel/:
cat commands.txt | parallel -j1
Si les commandes peuvent être exécutées en parallèle (c.-à-d. ne dépendez pas l'un de l'autre pour terminer) vous pouvez même faire:
cat commands.txt | parallel
Qu'est-ce que vous voulez faire? –
Une autre solution est: cat commands.txt | xargs -L 1 | sh –