shell无法使用>捕获文件中的输出和>>

时间:2014-09-24 06:36:40

标签: android linux shell

我知道>>>,但无法捕获以下代码的输出。 我有3个文件,我想使用CAT逐个打开文件。 如果找到GREP其他PASS,我会使用FAIL搜索特定的字符串/消息。 代码正在运行,但无法在文件中获得输出。

XXXXXXXXXX/XXX/XXX/postprocessing$ ls
demo.txt  tag.txt  tc1_adblog.txt  tc2_adblog.txt  tc3_adblog.txt


XXXXXXXXXX/XXX/XXX/postprocessing$ cat tc1_adblog.txt | grep  'ActivityRecord{4306a670 u0 com.example.android.notepad/.NotesList t9}' && echo "Test case 1: Pass" || echo "Test case 1: FAIL" >> result.txt
I/Timeline( 1002): Timeline: Activity_windows_visible id: ActivityRecord{4306a670 u0 com.example.android.notepad/.NotesList t9} time:12020671
Test case 1: Pass


XXXXXXXXXX/XXX/XXX/postprocessing$ ls
demo.txt  tag.txt  tc1_adblog.txt  tc2_adblog.txt  tc3_adblog.txt

2 个答案:

答案 0 :(得分:0)

>> result.txt仅在echo之后应用于||。您需要将整个命令分组如下:

s='ActivityRecord{4306a670 u0 com.example.android.notepad/.NotesList t9}'
{ grep -qF "$s" tc1_adblog.txt && echo "Test case 1: Pass" || echo "Test case 1: FAIL"; } >> result.txt
  • 使用grep -F匹配固定字符串
  • 使用grep -q来避免grep的输出
  • 避免无用cat

答案 1 :(得分:0)

&& echo "Pass" >> result.txt || echo "Fail" >> result.txt

(grep "string" && echo "Pass" || echo "Fail") >> result.txt