a=`cat /etc/redhat-release | awk '{print $2}' > /tmp/a.txt`
以上命令不会将输出重定向到文件。
答案 0 :(得分:2)
命令替换捕获包含的命令的stdout。当您将该输出重定向到文件时,它不再在stdout上,因此不再捕获它。
使用tee
创建两个副本 - 一个在文件中,一个在stdout上。
a=$(awk '{print $2}' </etc/redhat-release | tee /tmp/a)
另请注意:
cat
:给输入文件awk
直接处理可以节省额外的过程,允许从文件而不是FIFO直接写入 - - 并且正在遵循这样的做法,即通过sort
,shuf
,tail
或wc -c
这样的程序生成效率更高的游戏,这些程序可以使用更高效的算法文件。$(...)
。它比它取代的古老反引语语法更好地嵌套,并且使用反斜杠更容易混淆。