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 RAIDセット#00   
 18 18 ST3750330NS 750.2GB RAIDセット#00   
 19 19 ST3750330NS 750.2GB RAIDセット#00   
 20 20ST3750330NS750.2GBホットスペア[グローバル]
 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 RAIDセット#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
 タイプ:Supermicro
 モデル:X7DB8
-------------------->


  #Ch#ModelName容量使用量============================================ =================================== 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 RAIDセット#00 18 18
ST3750330NS 750.2GB RAIDセット#00 19 19
ST3750330NS 750.2GB RAIDセット#00 20 20
ST3750330NS750.2GBホットスペア[グローバル]2121
ST3750330NS 750.2GB RAIDセット#00 22 22
ST3750330NS 750.2GB RAIDセット#00 23 23
ST3750640NS 750.2GB RAIDセット#00 24 24
ST3750330NS 750.2GB RAIDセット#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 に答える