bash - bash 脚本将两个变量值打印到同一行序列中
问题描述
我正在编写一个 bash 代码并希望将两个变量值打印到同一行,而我正在尝试使用 echo 命令进行相同操作,但我没有得到它,因为它们一个接一个地被打印出来。
#!/bin/bash
BLK_ID=$(blkid | awk -F: '{print $1}')
for i in "$BLK_ID";
do
BLK_VAL=$(blkid -s UUID -o value $i);
#echo "Disk:${BLK_ID} -- UUID:${BLK_VAL}"
echo "$BLK_ID $BLK_VAL"
done
结果
/dev/sdb1
/dev/sda1
/dev/sda2
/dev/sda4
期望:
/dev/sdb1 8ce464b0-cc26-41ae-b6a5-2643b3e09226
/dev/sda1 LLi8wj-ROs5-IRQT-5qHy-3jDg-snro-RYbvOo
/dev/sda2 45y8wj-ROs5-IRQT-5qHy-4jDg-snro-RYbvOo
/dev/sda4 278edab7-9ccd-4302-bf84-5a1a68e897d2
解决方案
试试下面:
paste <(printf %s "$BLK_ID") <(printf %s "$BLK_VAL")
OR
paste <(printf %s "$BLK_ID") <(printf %s "$BLK_VAL") | column -t <-- this will help to better align columns
输出:
/dev/sdb1 8ce464b0-cc26-41ae-b6a5-2643b3e09226
/dev/sda1 LLi8wj-ROs5-IRQT-5qHy-3jDg-snro-RYbvOo
/dev/sda2 45y8wj-ROs5-IRQT-5qHy-4jDg-snro-RYbvOo
/dev/sda4 278edab7-9ccd-4302-bf84-5a1a68e897d2
推荐阅读
- python - 从 Geopy 库中获取纬度和经度时出错
- android - findautocompletepredictionsrequest 是收费的吗?
- flowtype - 允许函数接受数组或元组,但强制数组文字在 Flow 中被视为元组
- java - 将 Java int 转换为 C 无符号 int
- django - 如何在没有 try 语句的情况下检测未处理的异常
- c# - Visual Studio Edit-GoToAll (CTRL+Comma) 包含引用程序集
- python-3.7 - 启动后的自定义调度程序线程由 gunicorn 的主线程和工作线程并行运行
- node.js - 参考错误:未定义文本编码器
- php - docker-compose php 文件已更新但未执行
- amazon-web-services - 在 EMR 作业中的 Airflow 步骤之间传递数据