2017-09-05 121 views
1

即時通訊工作實際上與一個小腳本工作,這個腳本使用來自NAS EMC存儲命令,主要想法是存儲和輸出變量,並將其用於其他命令。不完整的輸出變量存儲

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 

這是server_param輸出

[[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

你這是什麼如果你十六進制轉儲它,得到嗎? './test.sh | xxd' – melpomene

+3

聽起來像輸出中某處的'\ r' – choroba

+0

實際上,使'./test.sh 2>&1 | xxd'。我們也想得到stderr。 – melpomene

回答

1

這爲我工作

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

nameserver1="$(dos2unix $nameserver)" 

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

echo "$serverparam0"