【问题标题】:Bash script: Store w3m dump into variableBash 脚本:将 w3m 转储存储到变量中
【发布时间】:2016-07-10 12:24:56
【问题描述】:

如何将 w3m 转储结果存储到 bash 脚本中的变量中?我通过 w3m dump 得到的结果是
C: randomIP randomPORT randomUSERNAME randomPASSWORD
我想剪切“C:”并将其他所有内容存储到变量中,以便将其添加到文件中。

【问题讨论】:

    标签: bash w3m


    【解决方案1】:

    您可以通过这种方式存储任何 bash 命令输出:-

    var=$(command) # replace command by w3m dump command
    #Later you can replace first occurring of C: by sed
    var=$(echo $var | sed s/^C://)
    

    现在var 变量将包含不带“C:”的转储。

    【讨论】:

    • 现在我只有我想要的文本,但是如何将 randomIP randomPORT randomUSERNAME randomPASSWORD 分配给变量?谢谢!
    • 我让它与 IFS=" " set $var echo $1 echo $2 echo $3 echo $4 一起使用
    • 是的,您可以使用cut 命令分隔一行。你可以使用这样的东西:-echo 'randomIP randomPORT randomUSERNAME randomPASSWORD' | cut -d' ' f1 获取randomIP。同样f2 用于第二个参数,依此类推。
    【解决方案2】:
    <your command> | read useless var1 var2 var3 var4
    

    正如man read 中解释的那样,read 将(大吃一惊!)读取标准输入上的一行(因此是管道)并使用 IFS(默认情况下为空格字符)作为输入中的分隔符。

    因此,在您的示例中,useless 将分配给“C:”; var1 到“随机IP”; ...

    【讨论】:

    • 虽然这段代码 sn-p 可以解决问题,including an explanation 确实有助于提高帖子的质量。请记住,您正在为将来的读者回答问题,而这些人可能不知道您的代码建议的原因。 - From review
    • 非常正确。此外,我意识到我这里的字符串在这里毫无意义,一根管子就足够了。我添加了一些解释,但我的解决方案现在很简单。谢谢。
    猜你喜欢
    • 2012-04-03
    • 2015-08-06
    • 2011-03-09
    • 1970-01-01
    • 1970-01-01
    • 2021-07-04
    • 1970-01-01
    • 2015-09-27
    • 2021-07-20
    相关资源
    最近更新 更多