在unix中动态地将输出写入文件

时间:2014-05-14 11:30:45

标签: shell unix

我希望脚本的输出需要写入文件,即QR_bar_code_ $ fdt.sh

此处我的脚本文件 qr_script.sh

dt=$(date "+%d/%B/%Y")
prev=$(date --date yesterday "+%d/%B/%Y")
fdt=$(date --date yesterday "+%d-%m-%Y")
echo "$fdt"
echo "Date :$prev"
grep -F "$prev" access_log|grep -F 'GET /?p='
echo "count :$(grep -F "$prev" access_log|grep -F 'GET /?p='|wc -l)"
cat >QR_bar_code_$fdt.sh
 exec >>QR_bar_code_$fdt.sh

我不确定最后两行。

我的问题是当我运行脚本时创建的文件但是输出没有附加到新创建的文件,并且脚本执行在创建文件后等待我写入将附加到文件的内容而不是由文件生成的输出脚本

我新创建的文件必须像 qr_script.sh

的输出一样

就像这样

Date :13/May/2014
183.82.99.35 - - [13/May/2014:03:03:16 -0400] "GET /?p=135873 HTTP/1.1" 301 281
183.82.99.35 - - [13/May/2014:03:03:49 -0400] "GET /?p=134201 HTTP/1.1" 301 281
183.82.99.35 - - [13/May/2014:03:04:06 -0400] "GET /?p=134201 HTTP/1.1" 301 281
183.82.99.35 - - [13/May/2014:03:04:25 -0400] "GET /?p=134201 HTTP/1.1" 301 281
count :4

如果有人对我的问题有任何疑问。请帮助我解决它 在此先感谢

1 个答案:

答案 0 :(得分:0)

尝试

prev=$(date --date yesterday "+%d/%B/%Y")
fdt=$(date --date yesterday "+%d-%m-%Y")
echo "$fdt" >QR_bar_code_$fdt.sh
echo "Date :$prev" >>QR_bar_code_$fdt.sh
grep -F "$prev" access_log|grep -F 'GET /?p=' >>QR_bar_code_$fdt.sh
echo "count :$(grep -F "$prev" access_log|grep -F 'GET /?p='|wc -l)" >>QR_bar_code_$fdt.sh