这是代码:
#!/bin/bash
head=`curl -D -s "http://example.com/" | grep "j_id__v_0:javax.faces.ViewState:2"`
echo $head
和终端中的输出:
</script>
<input type="hidden" name="GlobalFooter_SUBMIT" value="1" />
<input type="hidden" name="javax.faces.ViewState" id="j_id__v_0:javax.faces.ViewState:2" value="V7wZDq4cDizFPZ0i52hQGUD25XgWp5NJC+hCql33eTTwC2hm" autocomplete="off" />
</form>
</div>
</div>
如何打印值的内容?
答案 0 :(得分:0)
在sed
之后添加grep
,仅保留值:
#!/bin/bash
head=$(curl -D -s "http://example.com/" | grep "j_id__v_0:javax.faces.ViewState:2" | sed 's/.*\svalue="\(\S*\)"\s.*/\1/')
echo $head
耦合点:
$()
语法将命令结果分配给变量。反引号语法虽然可以正常使用,但它是旧式语法。\s
:空格\S
:除空白之外的所有内容。我之所以使用它是因为.*
是贪婪的,并且会包含value="SOMETHING" autocomplete="off
之后的所有内容