当echo存储在变量中的grep结果时,不加引号会输出为单行

2 min

language: ja bn en es hi pt ru zh-cn zh-tw

大家好,我是无能的。

虽然很快就会结束,但我还是把它记录下来作为备忘。


当把Grep的结果存储到变量中并echo时,不知为何它被输出为没有换行符的单行。

因此,测试脚本如下:

#!/bin/bash

FILE=nohup.out
## 尝试放入变量中
GR=`grep ACPI $FILE` 

## 这样会输出为单行
echo $GR

echo "-----此行上方无双引号。下方有。------"

## 这样会正确地输出换行符
echo "$GR"

让我们来执行一下。

~~~
complete [65791.702186] ACPI: EC: EC started [65791.702188] ACPI: PM: Restoring platform NVS memory [65791.719207] ACPI: PM: Waking up from system sleep state S3 [65791.728986] ACPI: EC: interrupt unblocked [65791.733283] ACPI: EC: event unblocked [65792.083297] ata1.00: ACPI cmd f5/00:00:00:00:00:a0(SECURITY FREEZE LOCK) filtered out [65792.083311] ata1.00: ACPI cmd ef/10:03:00:00:00:a0(SET FEATURES) filtered out [65792.087153] ata1.00: ACPI cmd f5/00:00:00:00:00:a0(SECURITY FREEZE LOCK) filtered out [65792.087169] ata1.00: ACPI cmd ef/10:03:00:00:00:a0(SET FEATURES) filtered out
-----此行上方无双引号。下方有。------
[    0.184506] pnp: PnP ACPI init
[    0.184506] pnp: PnP ACPI: found 6 devices
[    0.226677] ACPI: AC: AC Adapter [AC] (on-line)
[    0.226787] ACPI: button: Lid Switch [LID]
[    0.226855] ACPI: button: Sleep Button [SLPB]
[    0.226933] ACPI: button: Power Button [PWRF]
~~~

由于是dmesg的输出,虽然有所省略,但大致如上所示。

当想输出为单行时,应该不加引号展开;如果允许换行,则应该加引号。


嗯,就这些了……

那么。

请多多关照。

Related Posts