我试图以某种方式输出几个字符串,因此第二列保持缩进,即使例如终端太小而必须继续另一行。 现在我的代码看起来像这样:
echo " --show=[name] Show all packages, including"\
"their version."
echo " Date format: dd.mm.yy"
echo " --upgrade [pkg] Upgrade packages inside"\
"current instance."
#Size of terminal with output
+--------------------------------------------+
| --show=[name] Show all packages, includi|
|ng their version. |
| Date format: dd.mm.yy |
| --upgrade [pkg] Upgrade packages inside cu|
|rrent instance. |
+--------------------------------------------+
它剪切文本并将其抛出到下一行的开头而没有任何缩进。我尝试使用制表符,但没有改变任何内容。
我正在尝试将输出调整为任何终端大小,因此它看起来像......
+--------------------------------------------+
| --show=[name] Show all packages, |
| including their version. |
| Date format: dd.mm.yy |
| --upgrade [pkg] Upgrade packages inside |
| current instance. |
+--------------------------------------------+
答案 0 :(得分:0)
执行此操作的传统方法是tbl
文本格式系统使用的troff
实用程序,但是现在我发现使用带有文本模式浏览器的HTML作为渲染器更容易。但是,所有渲染器都有自己的怪癖,所以你可能需要做一些解决方法。
w3m
在渲染方面表现相当不错,但它似乎无法正确处理col
元素并且它无法处理CSS,这意味着您需要指定第一行的td
元素上的列宽和每个td
元素上的垂直对齐。这有点单调乏味,所以我在下面使用变量插值来做。
请注意,width属性的值位于 pixels ; w3m
默认为每个字符8个像素,因此要将列宽15个字符,您需要指定width=120
。
有了这个介绍,这是你的表:
C1="<tr><td width=120 valign=top>" C="<td valign=top>"
w3m -dump -T text/html -cols 45 <<EOT
<table>
${C1}--show=[name]
${C}Show all packages, including their version.<br />
Date format: dd.mm.yy
${C1}--upgrade [pkg]
${C}Upgrade packages inside current instance.
</table>
EOT
和输出
--show=[name] Show all packages,
including their version.
Date format: dd.mm.yy
--upgrade [pkg] Upgrade packages inside
current instance.
将-cols 45
更改为-cols 80
:
--show=[name] Show all packages, including their version.
Date format: dd.mm.yy
--upgrade [pkg] Upgrade packages inside current instance.
只是为了好玩,通过将<table>
更改为<table border>
来添加边框:
┌─────────────────┬────────────────────────┐
│--show=[name] │Show all packages, │
│ │including their version.│
│ │Date format: dd.mm.yy │
├─────────────────┼────────────────────────┤
│--upgrade [pkg] │Upgrade packages inside │
│ │current instance. │
└─────────────────┴────────────────────────┘
您还可以尝试使用任何其他文字模式浏览器,例如lynx
和elinks
。
答案 1 :(得分:-1)
坏消息...... {b} shell的echo
函数有时会吞下空白(特别是当你将输入分成几行时)。您可以尝试使用强制正确处理转义字符的-e
选项(您的`\&#39;),或者在我看来,更好地以受控方式拆分行,以便您的代码如下所示:< / p>
echo " --show=[name] Show all packages, including"
echo " their version."
echo " Date format: dd.mm.yy"
echo " --upgrade [pkg] Upgrade packages inside"
echo " current instance."
这就是我通常所做的事情,对我来说非常适合。