首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将命令的多行输出读入bash脚本中的变量

将命令的多行输出读入bash脚本中的变量
EN

Ask Ubuntu用户
提问于 2023-03-31 20:27:24
回答 1查看 58关注 0票数 0

我在bash脚本中有以下一行:

代码语言:javascript
复制
disk_info=$(smartctl -i $disk)

其中$disk是磁盘的名称,例如。/dev/sda命令的输出应该是多行长的,我需要进一步将它们作为单独的行处理,但是变量$disk_info不包含任何新行,只包含它们的示例中的空格:

代码语言:javascript
复制
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分隔的多行时,我做错了什么?

编辑:对于将来遇到这个问题的人来说:从公认的答案中可以看出,我对这个问题的初步诊断是远远不够的。

EN

回答 1

Ask Ubuntu用户

回答已采纳

发布于 2023-03-31 20:30:59

你没有引用变量。

代码语言:javascript
复制
echo "$disk_info"

变量包含所有换行符,但是shell将值扩展为参数到echo。双引用变量可防止展开。

票数 1
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1461816

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档