BASH在同一行输出

时间:2014-04-16 23:06:42

标签: bash

我有raid设置,我想将设备ID与已安装的云端硬盘相匹配。谢天谢地,输出是0-15。我使用的以下命令是:

MegaCli -LdpdInfo -a0 | awk '/Target Id:/ {print $3}'

MegaCli -LdpdInfo -a0 | awk '/Device Id:/ {print $3}'

lsscsi | awk '/MR9260-16i/ {print $6}'

我正在研究一个简单的脚本,它以一个put和work开始,然后我添加了第二个输出但是没有用,但是在第一个输出之后添加了结果,如下所示:

/dev/sdb
/dev/sdc
/dev/sdd
/dev/sde
/dev/sdg
/dev/sdh
/dev/sdi
/dev/sdj
/dev/sdk
/dev/sdl
/dev/sdm
/dev/sdn
/dev/sdo
/dev/sdp
/dev/sdq
/dev/sdr: 104
113
210
211
212
216
217
218
219
220
221
222
223
224
225
226

我就像“废话......不行”,无论如何这里是我的剧本

# Prints the Device ID of each drive on the Raid Controller.
perform_target() {
    MegaCli -LdpdInfo -a0 | awk '/Device Id:/ {print $3}'
}

# Prints each mounted drive out that is on the Raid Card.
perform_drive() {
    lsscsi | awk '/MR9260-16i/ {print $6}'
}
    printf ' %s\n' "$(perform_drive)" "$(perform_target)";

2 个答案:

答案 0 :(得分:1)

如果您在单独的文件中有两列,则可以使用paste加入它们:

$ cat file1
/dev/sdb
/dev/sdc
/dev/sdd

$ cat file2
104
113
210

$ paste file1 file2
/dev/sdb        104
/dev/sdc        113
/dev/sdd        210

答案 1 :(得分:1)

您不需要两次调用MegaCli:

MegaCli -LdpdInfo -a0 | awk <<'EOF'
  /Target Id:/ {printf("%s: ", $3)}
  /Device Id:/ {print $3}
EOF