2011-03-28 3 views
2

Ici ligne de commande imbriquée signifie que la sortie d'une commande est l'entrée d'une autre commande. Par exemple ci-dessous:Comment faire pour exécuter Linux ligne de commande imbriquée laconiquement?

$ CmdA 

output1 output2 output3... 

Maintenant, je veux exécuter CmdB qui utilise la sortie de CmdA comme arguments. Alors, comment run CMDB laconiquement au lieu d'utiliser

$ CmdB output1 output2 output3...

J'ai un problème réel maintenant:

$ python-config --cflags --ldflags 

-I/usr/include/python2.7 -I/usr/include/python2.7 -fno-strict-aliasing -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables -D_GNU_SOURCE -fPIC -fwrapv -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables -D_GNU_SOURCE -fPIC -fwrapv 
-lpthread -ldl -lutil -lm -lpython2.7 -Xlinker -export-dynamic 

Comme vous le voyez, il y a de nombreux éléments générés par commande config python. Si je compile un fichier source .cpp, je dois écrire tous les éléments comme

gcc test.cpp -I/usr/include/python2.7 -fno-strict-aliasing -02 -g -pipe........-o test, donc je veux juste trouver un moyen simple d'exécuter la commande de l'appelant.

Merci pour les conseils!

Répondre

0

Est-ce que vous parlez?

$ cmdA | while read line; do cmdB $line; done 
+2

On dirait qu'il cherche backquotes, puisque c'est comment « -config python » est destiné à être utilisé. –

4

Vous pouvez donner des paramètres à une autre commande en utilisant des accents graves ou $():

$ uname -r 
2.6.38-020638rc5-generic 
$ ls /lib/modules/`uname -r`/ 
build    modules.builtin.bin modules.inputmap modules.softdep 
initrd    modules.ccwmap  modules.isapnpmap modules.symbols 
kernel    modules.dep   modules.ofmap  modules.symbols.bin 
modules.alias  modules.dep.bin  modules.order  modules.usbmap 
modules.alias.bin modules.devname  modules.pcimap 
modules.builtin modules.ieee1394map modules.seriomap 
$ ls /lib/modules/$(uname -r)/ 
build    modules.builtin.bin modules.inputmap modules.softdep 
initrd    modules.ccwmap  modules.isapnpmap modules.symbols 
kernel    modules.dep   modules.ofmap  modules.symbols.bin 
modules.alias  modules.dep.bin  modules.order  modules.usbmap 
modules.alias.bin modules.devname  modules.pcimap 
modules.builtin modules.ieee1394map modules.seriomap 
$ 

Essayez gcc test.cpp $(python-config --cflags --ldflags) -o test

Questions connexes