我想将文件中的参数用作命令行参数,用于某些命令,如gcc或ls.
例如 gcc -o output -Wall -Werro
作为文件包括:
-o output -Wall -Werro
用于gcc命令行调用.
car*_*and 16
有些程序使用"@"语义从文件中输入args,例如.gcc @argfile
其中,对于gcc,argfile包含选项
-ansi
-I/usr/include/mylib
Run Code Online (Sandbox Code Playgroud)
这可以嵌套,以便argfile可以包含
-ansi
-I/usr/include/mylib
@argfile2
Run Code Online (Sandbox Code Playgroud)
http://gcc.gnu.org/onlinedocs/gcc-4.6.3/gcc/Overall-Options.html#Overall-Options
Car*_*rum 11
你可以使用xargs:
cat optionsfile | xargs gcc
Run Code Online (Sandbox Code Playgroud)
编辑:我一直被投票,因为洛朗不知道如何xargs运作,所以这是证据:
$ echo "-o output -Wall -Werro" > optionsfile
$ cat optionsfile | xargs -t gcc
gcc -o output -Wall -Werro
i686-apple-darwin10-gcc-4.2.1: no input files
Run Code Online (Sandbox Code Playgroud)
该-t标志导致stderr在执行之前写入命令.
我建议$()与 cat 一起使用:
gcc $(cat file)
Run Code Online (Sandbox Code Playgroud)
过度反引号(经典方式)的好处$()是更容易将一个反引号嵌套在另一个反引号中:
gcc $(cat $(cat filename))
Run Code Online (Sandbox Code Playgroud)