【发布时间】:2021-12-03 03:02:24
【问题描述】:
这里是 bash 版本 GNU bash,版本 5.0.17
这是猫 -A cookie_jar
ITRUE^I/^IFALSE^I0^ITS01e14722^I01786344cc8175e2661caaa80
ITRUE^I/^ITRUE^I0^IUserFirmId^I1$
IFALSE^I/^ITRUE^I0^IPF^IfqTGnM9LIjxqrsn
IFALSE^I/^ITRUE^I0^BIGipS~NP_QA_QF~LQAS0_7011 !qaE44xdbX2OjQtdL9Ez/f7vw2P/dxPd2WvZ9xQ==
我有一个 cookie_jar 文件,下面是那个 cookie_jar 文件的内容
# Netscape HTTP Cookie File
# https://curl.haxx.se/docs/http-cookies.html
# This file was generated by libcurl! Edit at your own risk.
.cn.com TRUE / FALSE 0 TS21xx72R2 01786344cc36119d024ed021fc31dad790cc200981f044
.cn.com TRUE / TRUE 0 UserxxxId 1we9edfauoefklare
.cn.com TRUE / TRUE 0 BUILD0 1teji23jksdfas
#HttpOnly_cn.com FALSE / TRUE 0 BIGipS~NP_QA_QF~LQAS0_7011 !qaE44xdbX2OjQtdL9Ez/f7vw2P/dxPd2WvZ9xQ==
.cn.com TRUE / FALSE 0 TS01dda1cb 01786344cc027084e046d692cedc2bbedc95e2512d8557aedca2
我希望 cookiename=cookievalue 应包含在一个脚本中,并且所有 cookievalue 应显示在一行中
告诉我如何为上面编写脚本以获取带有 cookiename 的 cookies
我写了一些脚本的例子
#!/bin/bash
TS21xx72R2="$(grep -m 1 "TS21xx72R2" cookie_jar | awk -F' ' '{print $7}')"
BUILD0="$(grep -m 1 "BUILD0" cookie_jar | awk -F' ' '{print $7}')"
TS01dda1cb="$(grep -m 1 "TS01dda1cb" cookie_jar | awk -F' ' '{print $7}')"
BIGipS~NP_QA_QF~LQAS0_7011="$(grep -m 1 "BIGipS~NP_QA_QF~LQAS0_7011" cookie_jar | awk -F' ' '{print $7}')"
UserxxxId="$(grep -m 1 "UserxxxId" cookie_jar | awk -F' ' '{print $7}')"
echo $TS21xx72R2 $UserxxxId $TS01dda1cb $BIGipS~NP_QA_QF~LQAS0_7011 $BUILD0
这是正确的输出
/cookie.sh: BIGipS~NP_QA_QF~LQAS0_7011 !qaE44xdbX2OjQtdL9Ez/f7vw2P/dxPd2WvZ9xQ==: No such file or directory
1teji23jksdfas 1we9edfauoefklare 01786344cc027084e046d692cedc2bbedc95e2512d8557aedca2 01786344cc36119d024ed021fc31dad790cc200981f044 ~NP_QA_QF~LOGINQAS0_7011
注意:- BIGipS~NP_QA_QF~LQAS0_7011(当我执行脚本时出现“没有这样的文件或目录”的错误)但脚本和我的文件中的每个单词都是正确的
输出正确,但唯一的问题是它需要以正确的方式格式化,应该在 shell 脚本中
新脚本会很有帮助
【问题讨论】:
-
请用您的脚本生成的(错误的)输出和(正确的)预期输出来更新问题;这两组输出都应与您提供的示例输入相对应
-
我不知道哪些字符串被认为是
cookiename或cookievalue,虽然我可以猜测,但我没有看到任何(从示例输入)接近14的计数;因此要求您使用错误和正确/预期的输出集更新问题;如果您的代码在没有语法问题的情况下运行,则发布所述运行的输出;如果您不知道正确/预期的输出应该是什么,那么您如何知道您的代码是否生成了正确/错误的输出? -
还可以考虑将您的代码(包括 shebang)剪切并粘贴到 shellcheck 并进行建议的编辑
-
不幸的是,额外的细节(错误/语法消息)只会使水更加混乱......错误消息提到
line 28,但您提供的脚本中没有 28 行...... . 错误消息提到了一个以"PMV65SXY9tlvO7...开头的字符串,但该字符串在您的脚本或示例输入中的任何位置都不存在;请查看How to create a Minimal, Reproducible Example? 并返回并相应地更新问题;特别是您正在运行的实际代码,匹配输入和输出数据 -
如前所述,将您的代码剪切并粘贴到shellcheck 并进行建议的更改;例如:
BIGipS~NP_QA_QF~LQAS0_7011是一个无效的变量名,所以BIGipS~NP_QA_QF~LQAS0_7011=....正在生成您的错误
标签: bash shell http cookies session-cookies