0

我是 Bash 脚本的新手。

这是脚本中包含的命令:

arecacli64 disk info通常给出:

  # Ch# ModelName 容量使用情况

==================================================== ==============================
  1 1 ST3750330NS 750.2GB RAID 套装 # 00   
  2 2 ST3750330NS 750.2GB RAID 套装 # 00   
  3 3 ST3750330NS 750.2GB RAID 套装 # 00   
  4 4 ST3750330NS 750.2GB RAID 套装 # 00   
  5 5 ST3750330NS 750.2GB RAID 套装 # 00   
  6 6 ST3750330NS 750.2GB RAID 套装 # 00   
  7 7 ST3750330NS 750.2GB RAID 套装 # 00   
  8 8 ST3750330NS 750.2GB RAID 套装 # 00   
  9 9 ST3750330NS 750.2GB RAID 套装 # 00   
 10 10 ST3750330NS 750.2GB RAID 套装 # 00   
 11 11 ST3750330NS 750.2GB RAID 套装 # 00   
 12 12 ST3750330NS 750.2GB RAID 套装 # 00   
 13 13 ST3750330NS 750.2GB RAID 套装 # 00   
 14 14 ST3750330NS 750.2GB RAID 套装 # 00   
 15 15 ST3750330NS 750.2GB RAID 套装 # 00   
 16 16 ST3750330NS 750.2GB RAID 套装 # 00   
 17 17 ST3750330NS 750.2GB 突袭套装 # 00   
 18 18 ST3750330NS 750.2GB RAID 套装 # 00   
 19 19 ST3750330NS 750.2GB RAID 套装 # 00   
 20 20 ST3750330NS 750.2GB HotSpare[全球]
 21 21 ST3750330NS 750.2GB RAID 套装 # 00   
 22 22 ST3750330NS 750.2GB RAID 套装 # 00   
 23 23 ST3750640NS 750.2GB RAID 套装 # 00   
 24 24 ST3750330NS 750.2GB 突袭套装 # 00   
==================================================== ==============================

我的简单脚本是:

F=`dmidecode |grep  "Product Name:"|cut -d ":" -f2|head -1`

if [ $F == "X7DB8" ]
then
echo
echo
echo -e "$VERT" HOSTNAME : `hostname`"$NORMAL"
echo -e "$BLEU" TYPE :"$NORMAL" `dmidecode -s system-manufacturer`
echo -e "$BLEU" MODEL :"$NORMAL" `dmidecode -t system |grep "Product Name:"|cut -d ":" -f2`


echo "-------------------->"
echo

echo -e  `/usr/local/bb/ext/Raid/arecacli64 disk info`

fi

但是结果显示(与raid ctrl有关的部分)没有命令显示的任何选项卡arecalcli64 disk info

主机名:xxxx@www.com
 类型:超微
 型号:X7DB8
-------------------->


  # Ch# ModelName 容量使用情况 ============================================= ==================================== ST3750330NS 750.2GB Raid Set #00 2 2
ST3750330NS 750.2GB 突袭套装 # 00 3 3
ST3750330NS 750.2GB RAID 套装 # 00 4 4
ST3750330NS 750.2GB RAID 套装 # 00 5 5
ST3750330NS 750.2GB RAID 套装 # 00 6 6
ST3750330NS 750.2GB 突袭套装 # 00 7 7
ST3750330NS 750.2GB RAID 套装 # 00 8 8
ST3750330NS 750.2GB 突袭套装 # 00 9 9
ST3750330NS 750.2GB RAID 套装 # 00 10 10
ST3750330NS 750.2GB 突袭套装 # 00 11 11
ST3750330NS 750.2GB RAID 套装 # 00 12 12
ST3750330NS 750.2GB RAID 套装 # 00 13 13
ST3750330NS 750.2GB RAID 套装 # 00 14 14
ST3750330NS 750.2GB RAID 套装 # 00 15 15
ST3750330NS 750.2GB 突袭套装 # 00 16 16
ST3750330NS 750.2GB RAID 套装 # 00 17 17
ST3750330NS 750.2GB 突袭套装 # 00 18 18
ST3750330NS 750.2GB RAID 套装 # 00 19 19
ST3750330NS 750.2GB RAID 套装 # 00 20 20
ST3750330NS 750.2GB HotSpare[全球] 21 21
ST3750330NS 750.2GB 突袭套装 # 00 22 22
ST3750330NS 750.2GB 突袭套装 # 00 23 23
ST3750640NS 750.2GB RAID 套装 # 00 24 24
ST3750330NS 750.2GB Raid Set #00 =========================================== ==================================== GuiErrMsg:成功。

我已经尝试使用\t \或使用sed等。

4

2 回答 2

4

代替

echo -e  `/usr/local/bb/ext/Raid/arecacli64 disk info`

只需使用

/usr/local/bb/ext/Raid/arecacli64 disk info
于 2012-09-03T12:29:13.200 回答
0

如果您引用命令替换,您将获得正确的输出。

echo  "`/usr/local/bb/ext/Raid/arecacli64 disk info`"

-e不需要该标志,因为您没有指定任何\t字符;选项卡嵌入在的输出中,arecacli64并通过引用其输出来保留。

但正如 kkeller 指出的那样,首先没有必要使用命令替换。

于 2012-09-03T13:04:55.630 回答