Linux_重定向
有哪些
有标准输入、标准输出重定向。
有命令代换。
有管道。
标准输出重定向
1 |
|
编译为a.out
。
>
为完全覆盖写。
1 | ./a.out > aa.txt |
目前aa.txt
内容为
1 | C Program! |
>>
为追加写。
1 | ./a.out >> aa.txt |
目前aa.txt
内容为
1 | C Program! |
我们想在命令行把程序执行后的输出结果输出到文件中时,可以这样:
./cmpxz DCE 20250709 >log.txt 2>&1
标准输入重定向
1 |
|
编译为b.out
1 | ./b.out < "hello" |
提示:
所以标准输入重定向不能是简单的字符串,而是要重定向到一个文件。
先用echo
把一些内容输入到一个文件中:
1 | echo "hello" > aa.txt |
执行结果:
1 | hello |
管道
我们上面讲的标准输入、标准输出重定向都是文件和程序之间的交互。
而管道是进程之间的交互。
用上面的a.out
和b.out
示例一下管道:
1 | ./a.out | ./b.out |
执行结果:
1 | C |
(没有显示全C Program!
,是因为中间有空格,scanf只输入了空格前的C字符。)
命令代换
Command Substitution
形如:
1 | var2=$(./a.out) |
即,可以把程序、shell脚本运行的结果写入到环境变量中。
便于脚本编写中涉及到的命令中转,可以先保存到环境变量中。使用命令代换,避免了在代码中编写读写文件的繁琐。