當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