【问题标题】:Storing the output into shell variable将输出存储到 shell 变量中
【发布时间】:2018-01-27 12:34:38
【问题描述】:

我希望将以下命令的输出存储在我的 postgres 数据库中

sudo -u postgres -H -- psql -d firstdb -c"select count(col2) from table2;"

放入 shell 中定义的变量中。 我在某处看到过这种方式-

abc=sudo -u postgres -H -- psql -d firstdb -c"select count(col2) from 表2;" echo abc

但似乎无法正常工作 有没有其他方法来存储输出以便应用剪切查询来获取值并检查列的大小??

【问题讨论】:

  • 您可以在大多数 shell 中使用abc=$(command) 将输出存储到变量中。
  • 我确实使用了 $(command) 但这也没有用!!
  • 要清楚,你会这样做:abc=$(sudo -u postgres -H -- psql -d firstdb -c"select count(col2) from table2;"),然后echo $abc 查看输出...注意,这将捕获标准输出,而不是标准错误...
  • 有没有办法从这个标准输出中剪切或grep计数(*)值
  • 我不确定您在追求什么,但您可以使用awk '{print $2}' 打印输出的特定列(在本例中为第二列)。您也可以使用sed 从文本中删除任何count=_val_ 模式。或者,如果您实际上是在寻找行数,您可以将输出通过管道传输到 wc。您必须man 这些命令才能了解如何正确使用它们。

标签: linux postgresql shell centos


【解决方案1】:

你可以这样做:

abc=$(svn://solace2/svn/vrs32/branches/feature/ipv6_support 2>&1)

然后执行echo $abc 以查看输出。请注意,末尾的 2>&1 将在将 stdout 分配给变量之前将 stderr 重定向到 stdout,这意味着 abc 将包含错误消息以及常规消息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-13
    • 1970-01-01
    • 2022-01-09
    • 2023-02-13
    • 1970-01-01
    • 1970-01-01
    • 2011-10-08
    相关资源
    最近更新 更多