Как выполнить вложенную командную строку Linux кратко? - PullRequest
2 голосов
/ 28 марта 2011

Здесь вложенная командная строка означает, что вывод одной команды является вводом другой команды.Например, ниже:

$ CmdA

output1 output2 output3...

Теперь я хочу запустить CmdB, который использует выходные данные CmdA в качестве аргументов.Так как запустить CmdB кратко вместо использования

$ CmdB output1 output2 output3...

У меня сейчас актуальная проблема:

$ 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

Как видите,Есть много элементов, сгенерированных из команды python-config.Если я скомпилирую исходный файл .cpp, мне нужно написать все элементы, такие как

gcc test.cpp -I/usr/include/python2.7 -fno-strict-aliasing -02 -g -pipe........-o test, поэтому я просто хочу найти простой способ выполнить команду вызывающего абонента.

Спасибо засоветы!

Ответы [ 3 ]

5 голосов
/ 28 марта 2011
gcc test.cpp `python-config --cflags --ldflags`

Подробнее: Подстановка команд

4 голосов
/ 28 марта 2011

Вы можете передать параметры другой команде с помощью обратных галочек или $():

$ 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
$ 

Попробуйте gcc test.cpp $(python-config --cflags --ldflags) -o test

0 голосов
/ 28 марта 2011

О чем ты говоришь?

$ cmdA | while read line; do cmdB $line; done
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...