Shell脚本将输出写入文件

时间:2017-11-13 15:43:37

标签: shell

我有一个shell脚本,它从文本文件中提取某些值(通过终端输入)。该脚本按预期进行提取,但不会正确地将输出打印到文件中。

脚本是:

#!/bin/bash

input_file=$1 
while read -r LINE
do
IFS="=" read -r -a params <<< "$LINE"
if [ -n "${params[2]}" ]
    then
    IFS=" " read -r -a param_opcode <<< "${params[2]}"
    echo "${param_opcode}"
fi
done < "$input_file"

终端输出如下:

0xd2800140  
0xd2800061  
0x8b010000  
0x8b000042  
0xd1000821  
0xd28001e5  
0xd28000a6  
0x9ac608a5  
0xe7ff0010  
0xe7ff0010  

但是,当我尝试将其写入文本文件时:

echo "${param_opcodes}" > log.txt

它只打印到文件:

0xe7ff0010

我试过&gt;&gt;但我不想追加它。我希望每次都覆盖该文件,我运行脚本。

1 个答案:

答案 0 :(得分:1)

您重定向到日志文件是不对的,因为它位于while循环内。 使用while循环结束时的重定向:

while read -r LINE; do
...
done < "$input_file" > "log.txt"