Bash将输出/错误分配给变量

帕特里克·库塞鲍赫(Patrick Kusebauch)

我的bash文件中包含以下行:

LIST=$(ssh 192.168.0.22 'ls -1 /web');

我遇到的问题是它是自动化脚本的一部分,我经常在stdout而不是我需要的数据上获取此信息:

ssh_exchange_identification: Connection closed by remote host

我意识到,这LIST只能获得stdoutls所以我正在寻找一个可以从命令中获取更多信息的命令。特别是:

  • stdout对于ls-我现在有那个
  • stderr因为ls-并不是很感兴趣,我认为那里不会有问题
  • stdout对于ssh-不感兴趣,我什至不知道它将输出什么
  • stderrssh-这就是我要找来检查它是否ssh正确。这是空的,应该意味着我有$LIST预期的数据
塞尔吉(Sergiy Kolodyazhnyy)

从Ubuntu 16.04(LTS)的ssh手册页中:

EXIT STATUS
     ssh exits with the exit status of the remote command or with 255 if an error occurred.

知道了,我们可以检查ssh命令的退出状态如果退出状态为225,我们就知道这是一个ssh错误,如果它是其他任何非零值,那就是ls错误。

#!/bin/bash

TEST=$(ssh $USER@localhost 'ls /proc' 2>&1)

if [ $? -eq 0 ];
then
    printf "%s\n" "SSH command successful"
elif [ $? -eq 225   ]
    printf "%s\n%s" "SSH failed with following error:" "$TEST"
else 
    printf "%s\n%s" "ls command failed" "$TEST"
fi

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Bash将输出/错误分配给变量

来自分类Dev

将终端命令分配给bash变量时出错

来自分类Dev

将终端命令分配给bash变量时出错

来自分类Dev

将bash输出分配给.lua脚本中的变量

来自分类Dev

将命令输出分配给bash中的变量

来自分类Dev

将命令的输出分配给变量

来自分类Dev

将 awk 输出分配给变量

来自分类Dev

将grep输出分配给变量

来自分类Dev

Bash:将默认值分配给变量时出错

来自分类Dev

无法将嵌套命令的输出分配给bash中的变量

来自分类Dev

Bash-将变量的输出分配给数组| grep“ abcd” -c

来自分类Dev

无法将命令输出分配给bash脚本中的变量

来自分类Dev

将命令输出的一部分分配给 bash 中的变量?

来自分类Dev

将 memcache 命令的输出分配给 shell/bash 脚本中的变量

来自分类Dev

在bash shell中将函数的输出分配给变量

来自分类Dev

如何在bash中将函数的输出分配给变量?

来自分类Dev

将terraform输出分配给环境变量

来自分类Dev

R- crosstable:将输出分配给变量

来自分类Dev

将Shell命令的输出分配给变量

来自分类Dev

data.table将输出分配给变量列

来自分类Dev

将git log的输出分配给powershell变量

来自分类Dev

动态将变量的字符输出分配给颜色

来自分类Dev

如何将命令的输出分配给shell变量?

来自分类Dev

将输出线数分配给变量

来自分类Dev

将php输出(ajax)分配给javascript变量

来自分类Dev

无法将命令输出分配给变量

来自分类Dev

将nmap输出分配给几个变量

来自分类Dev

R将函数的输出分配给变量

来自分类Dev

将函数输出分配给宏变量