在shell脚本中的tshark过滤器中使用变量

在shell脚本中的tshark过滤器中使用变量

问题描述:

我正在尝试编写一个在pcap文件上应用tshark过滤器的shell脚本。过滤器是一个带有'/'字符的变量。在shell脚本中的tshark过滤器中使用变量

我有类似

tshark -r $file -Y "frame contains $PATTERN"

它没有 '/' 的过滤器的工作原理。但是一旦$PATTERN包含'/',就会出现错误tshark: '/' is unexpected

如何编写脚本,使变量PATTERN可以包含特殊字符?

+0

你能提供样品过滤器,其中包括一个斜杠?你确定导致问题的过滤器是有效的吗?我发现有一些有效的过滤器选项包含一个斜杠(例如这里的第二个示例:https://wiki.wireshark.org/DisplayFilters),所以过滤器可能无效,错误还有改进空间吗? –

+0

该过滤器是一个URL,例如www.foo.com/bar – Rayne

尝试引用了PATTERN,例如:

tshark -r $file -Y 'frame contains "$PATTERN"' 

在Windows中,你可以使用:

tshark.exe -r $file -Y "frame contains \"$PATTERN\"" 
+0

我最初尝试过,并且该命令没有返回任何内容。那是当我尝试''框架包含$ PATTERN“'这给了我匹配'PATTERN'没有'/'。 – Rayne

+0

似乎你必须从脚本中逃脱双引号: PATTERN = text/html tshark -r $ file -Y“frame contains \”$ PATTERN \“” –