我在bash脚本中有以下一行:
disk_info=$(smartctl -i $disk)其中$disk是磁盘的名称,例如。/dev/sda命令的输出应该是多行长的,我需要进一步将它们作为单独的行处理,但是变量$disk_info不包含任何新行,只包含它们的示例中的空格:
echo $disk_info
smartctl 7.1 2019-12-30 r5022 [x86_64-linux-5.15.0-56-generic] (local build) Copyright (C) 2002-19, Bruce Allen, Christian Franke, www.smartmontools.org === START OF INFORMATION SECTION === Model Family: WDC HGST Ultrastar He10 Device Model: WDC WD100EMAZ-00WJTA0 Serial Number: JEJ84B7N LU WWN Device Id: 5 000cca 267dfe25a Firmware Version: 83.H0A83 User Capacity: 10,000,831,348,736 bytes [10.0 TB] Sector Sizes: 512 bytes logical, 4096 bytes physical Rotation Rate: 5400 rpm Form Factor: 3.5 inches Device is: In smartctl database [for details use: -P show] ATA Version is: ACS-2, ATA8-ACS T13/1699-D revision 4 SATA Version is: SATA 3.2, 6.0 Gb/s (current: 6.0 Gb/s) Local Time is: Fri Mar 31 22:06:30 2023 CEST SMART support is: Available - device has SMART capability. SMART support is: Enabled当输出结束为一行而不是由LFs分隔的多行时,我做错了什么?
编辑:对于将来遇到这个问题的人来说:从公认的答案中可以看出,我对这个问题的初步诊断是远远不够的。
发布于 2023-03-31 20:30:59
你没有引用变量。
echo "$disk_info"变量包含所有换行符,但是shell将值扩展为参数到echo。双引用变量可防止展开。
https://askubuntu.com/questions/1461816
复制相似问题