Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将BASH中变量的多行打印到HTML输出_Html_Bash - Fatal编程技术网

如何将BASH中变量的多行打印到HTML输出

如何将BASH中变量的多行打印到HTML输出,html,bash,Html,Bash,我在执行一个脚本时遇到问题,该脚本基本上从服务器捕获磁盘空间并将结果输出到html页面 存储=$(df-PTh | column-t | sort-n-k6n) STDOUT中的输出正常。格式很好。当我将变量回显到HTML页面时,输出变成一行,如下所示: /dev/vx/dsk/localdg/wm7x01 vxfs 30G 21G 9.3G 70%/apps/wm7x01/dev/mapper/vg00 vrts ext3 6.9G 4.7G 2.3G 68%/vrts_安装/dev/mapp

我在执行一个脚本时遇到问题,该脚本基本上从服务器捕获磁盘空间并将结果输出到html页面

存储=$(df-PTh | column-t | sort-n-k6n)

STDOUT中的输出正常。格式很好。当我将变量回显到HTML页面时,输出变成一行,如下所示:

/dev/vx/dsk/localdg/wm7x01 vxfs 30G 21G 9.3G 70%/apps/wm7x01/dev/mapper/vg00 vrts ext3 6.9G 4.7G 2.3G 68%/vrts_安装/dev/mapper/vg00-ora11g cli ext3 7.7G 4.1G 3.3G 57%/usr/oracle11g cli/dev/mapper/vg00重新打包ext3 100423m 586M 42%/var/spool/repackage/dev/vx/dsk/cfs 220u/vxu共享vxg/vxg/vxg

我甚至试着使用引号:echo“$STORAGE”

我还尝试使用array:echo“{STORAGE[@]}”

不幸的是,所有这些都会产生相同的结果。你能帮忙吗

谢谢

又快又丑的黑客:

STORAGE=$(df -PTh | column -t | sort -n -k6n | sed 's:$:<br/>:')
STORAGE="<table>$(df -PTh | column -t | sort -n -k6n | sed 's:$:<br/>:;s:  *:</td><td>:;s:.*:<tr><td>&</td></tr>:')</table>"
STORAGE="<pre>$(df -PTh | column -t | sort -n -k6n)</pre>"
STORAGE=$(df-PTh | column-t | sort-n-k6n | sed's:$:
:)
这会在每一行的末尾放一个换行符。。。但它不会将其格式化为表。为此,这里有另一个又快又丑的黑客:

STORAGE=$(df -PTh | column -t | sort -n -k6n | sed 's:$:<br/>:')
STORAGE="<table>$(df -PTh | column -t | sort -n -k6n | sed 's:$:<br/>:;s:  *:</td><td>:;s:.*:<tr><td>&</td></tr>:')</table>"
STORAGE="<pre>$(df -PTh | column -t | sort -n -k6n)</pre>"
STORAGE=“$(df-PTh | column-t | sort-n-k6n | sed's:$:
;s:*;s:*:&')”
这将使用必要的HTML来替换一个或多个空格的所有出现,以拆分列,然后向每行添加表行包装器,最后将整个输出包装在HTML
标记中

我再说一遍:这是一个丑陋的黑客。它大部分时间都应该在紧要关头工作,但如果您有任何其他添加空间的内容,例如设备名或文件系统名,它肯定会崩溃。(是否安装过音量有空间的U盘?)

请注意,这个丑陋的黑客没有使用任何特定于bash的东西。你可以在更传统的伯恩风格的贝壳中轻松完成

另一种可能(可能更容易)是简单地将此文本标记为已预格式化(实际上是):

STORAGE=“$(df-PTh | column-t | sort-n-k6n)”
最后,如果您想用它来获得所有的bashy并使用数组,下面是一个示例:

echo "<pre>$STORAGE</pre>"
#/usr/local/bin/bash

mapfile-t a_storage<也许您需要了解一下HTML,以及如何将文本格式化为表格和列

无论如何,在内容前后放置
标记,如下所示:

echo“$STORAGE”

它不会创建HTML表,但至少不会丢失空格

谢谢Ghoti,这符合我的要求。