SHELL SCRIPT:将grep结果保存到变量中

时间:2014-11-25 10:02:17

标签: shell grep

您好我正在尝试将我的egrep结果保存到变量中并执行foreach。 但是,尽管有以下类型的代码,我仍然会收到以下错误

#!/bin/sh    
RESULT1=$(egrep 'Begin|End' $SYNCLOG)
RESULT2=egrep 'Begin|End' $SYNCLOG
RESULT3="egrep 'Begin|End' $SYNCLOG"

Errror

./test.sh: syntax error at line 24: `RESULT=$' unexpected

我试图将我的egrep结果保存到变量中。 egrep将返回以下结果

File 2:Begin - Date :Fri Jan 10 22:44:47 SGT 2014
File 2:End - Date :Fri Jan 10 22:47:06 SGT 2014
File 3:Begin - Date : Tue Jan 11 22:32:54 SGT 2014
File 3:End - Date : Tue Jan 11 22:34:43 SGT 2014
File 4:Begin - Date : Wed Jan 12 22:46:15 SGT 2014
File 4:End - Date : Wed Jan 12 22:48:23 SGT 2014
File 5:Begin - Date : Thu Jan 13 22:30:31 SGT 2014
File 5:End - Date : Thu Jan 13 22:32:51 SGT 2014

2 个答案:

答案 0 :(得分:1)

问题是sh

的shebang
#!/bin/sh

使用$(...),这是一种BASH语法。

要修复,你可以使用这个shebang代替使用bash:

#!/bin/bash

或者在/bin/sh中使用此命令替换语法:

RESULT1=`egrep 'Begin|End' $SYNCLOG`

答案 1 :(得分:0)

似乎你在第24行的某个地方有反引号。粘贴你的整个脚本。以上shell脚本摘录即

RESULT1=$(egrep 'Begin|End' $SYNCLOG)

应该工作。