2017-09-05 7 views
1

実際には小さなスクリプトで作業していますが、このスクリプトはNAS EMC Storageのコマンドラインを使用しています。主なアイデアはストレージと出力変数で、他のコマンドに使用します。不完全な出力変数

nameserver="$(nas_server -list -all | awk 'NR == 3 {print $6}')" 


serverparam1="$(server_param "$nameserver" -facility NDMP -list)" 

echo "$serverparam1" 

..だから、このコマンドnas_server -list -all | awk 'NR == 3 {print $6}戻っ「server_3」

アイデアは、ストレージに名前「server_3」であり、この他のコマンドでそれを使用します。

server_param server_3 -facility NDMP -list 

すべての問題点このことは、出力プリントが "server_3"ではなく、 "ver_3"しか取得できないことです。なぜこれが起こっているのか分かりません。

これは、端末の出力に含まです:

[[email protected] ~]$ ./test.sh 
: ver_3 
: unknown hostver_3 

これは

[[email protected] ~]$ server_param server_3 -facility NDMP -list 
server_3 : 
param_name      facility default  current configured 
maxProtocolVersion     NDMP   4   4 
scsiReserve       NDMP   0   0 
DHSMPassthrough      NDMP   0   0 
CDBFsinfoBufSizeInKB    NDMP  1024  1024 
noxlt        NDMP   0   0 
bufsz        NDMP  128  128 
convDialect       NDMP  8859-1  8859-1 
concurrentDataStreams    NDMP   4   4 
includeCkptFs      NDMP   1   1 
md5         NDMP   1   1 
snapTimeout       NDMP   5   5 
dialect        NDMP 
forceRecursiveForNonDAR    NDMP   0   0 
excludeSvtlFs      NDMP   1   1 
tapeSilveringStr     NDMP   ts   ts 
portRange       NDMP 1024-65535 1024-65535 
snapsure       NDMP   0   0 
v4OldTapeCompatible     NDMP   1   1 

    [[email protected] ~]$ nas_server -list -all 
id  type acl slot groupID state name 
1  1 0  2    0 server_2 
2  4 0  3    0 server_3 

id  acl server mountedfs  rootfs name 
1  0 1   17    13  TEST_VDM-1 
2  0 1   16    14  TEST_VDM-2 

おかげ

+1

を働いserver_paramから出力され、もしあなたがそれを16進ダンプすれば? './test.sh | xxd' – melpomene

+3

出力のどこかで '\ r'のように聞こえる – choroba

+0

実際には、' ./test.sh 2>&1 | xxd'。我々はまた、標準偏差を取得したい。 – melpomene

答えて

1

これはあなたが何を私のために

nameserver="$(nas_server -list -all | awk 'NR == 5 {print $6}')" 

nameserver1="$(dos2unix $nameserver)" 

serverparam0="$(server_param "$nameserver0" -facility NDMP -list)" 

echo "$serverparam0"