【问题标题】:incomplete output variable stored存储的输出变量不完整
【发布时间】:2018-02-14 01:51:10
【问题描述】:

我实际上在使用一个小脚本,这个脚本使用来自 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”,我不知道为什么会这样。

这是终端的输出:

[nasadmin@xxxx ~]$ ./test.sh
 : ver_3
 : unknown hostver_3

这是 server_param 的输出

    [nasadmin@xxxx ~]$ 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

    [nasadmin@xxxx ~]$ 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

谢谢

【问题讨论】:

  • 如果你对它进行十六进制转储,你会得到什么? ./test.sh | xxd
  • 在输出中的某处听起来像\r
  • 实际上,那就是./test.sh 2>&1 | xxd。我们也想获得标准错误。
  • 你能告诉我们nas_server -list -all的输出吗?
  • 只需在本网站的档案中搜索dos2unix 或谷歌即可。你会发现成千上万的点击,选择任何一个。问题是您的输入行以string\r\n 结尾,而不仅仅是string\n\r 导致光标在打印时跳回行首,因此您得到一些输出,然后光标跳回感谢\r 然后你得到剩下的,覆盖已经打印的内容。将命令的输出通过管道传送到| cat -v,以将\rs 视为^Ms。

标签: bash awk emc


【解决方案1】:

这对我有用

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

nameserver1="$(dos2unix $nameserver)"

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

echo "$serverparam0"

【讨论】:

    猜你喜欢
    • 2012-06-27
    • 2014-07-28
    • 2020-09-19
    • 1970-01-01
    • 2022-10-08
    • 1970-01-01
    • 2017-05-09
    • 2014-07-02
    • 2011-10-08
    相关资源
    最近更新 更多