【问题标题】:Linux - Is it possible to store console output in a variable but with the same format as its present in console?Linux - 是否可以将控制台输出存储在变量中,但格式与控制台中的格式相同?
【发布时间】:2014-07-04 12:23:07
【问题描述】:

这是我的场景:

我用的是 csh

1)

$ ls -l /corefiles/ | grep "root"
-rw-r----- 1 root  root   0 Sep 22  2014 core.3.4.
-rwxr-x--- 1 root  root  92 Sep 22  2014 ss.sh

2)

$ set textInfo=`ls -l /corefiles/ | grep "root"`
$ echo $textInfo
-rw-r----- 1 root root 0 Sep 22 2014 core.3.4. -rwxr-x--- 1 root root 92 Sep 22 2014 ss.sh

但我需要echo $textInfo 来提供类似 1) 的输出。

我怎样才能做到这一点?我不想将内容重定向到文件中。 我需要将控制台输出存储在一个变量中,但格式与控制台中的格式相同。

我需要一个内容如下的变量:

$ echo $textInfo
-rw-r----- 1 root  root   0 Sep 22  2014 core.3.4.
-rwxr-x--- 1 root  root  92 Sep 22  2014 ss.sh

【问题讨论】:

标签: linux unix csh


【解决方案1】:

使用echo "$textInfo" 代替echo $textInfo。否则,该变量将作为命令行的一部分而不是作为字符串展开,因此不会保留换行符。

【讨论】:

  • 这不起作用,结果还是一样,输出在同一行。
  • 它在'sh'中工作但我在'csh'(cshell)中需要相同的cmd,它在csh中不起作用
  • 看起来这是一个 csh 限制。我刚刚发现另一个问题问同样的事情。
【解决方案2】:

试试这个:

textInfo=$(ls -l /corefiles/ | grep "root")

然后

echo "$textInfo"

【讨论】:

  • 它在'sh'中工作但我需要在'csh'(cshell)中相同的cmd,它在csh中不起作用
猜你喜欢
  • 2021-12-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-19
  • 2010-11-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多