小编use*_*723的帖子

SSH连接超时

我正在尝试使用SSH连接golang.org/x/crypto/ssh,我有点惊讶,我似乎无法找到如何超时NewSession功能(我实际上没有看到任何方式超时任何东西).当我尝试连接到有问题的服务器时,这只会挂起很长一段时间.我已经写了一些东西用于selecta time.After但它只是感觉像一个黑客.我还没有尝试的东西是保持net.Conn我的结构中的底层,并继续进行Conn.SetDeadline()调用.还没有尝试过,因为我不知道crypto/ssh库是否覆盖了这个或类似的东西.

任何人都有一个很好的方法来使这个库超时死机服务器?或者有人知道更好的图书馆吗?

ssh go

12
推荐指数
2
解决办法
4518
查看次数

JSDoc 包含另一个 @typedef 对象的所有属性

如果我使用 JSDoc 创建两个对象,其中一个具有另一个对象的所有属性,我该如何显示?

例如你有:

/** 
 * @typdef Foo
 * @type {Object}
 * @property {string} bar
 * @property {string} baz
 */

/**
 * @typedef Foobar
 * @type {Object}
 * @property {float} value
 * @property {string} bar
 * @property {string} baz
 */
Run Code Online (Sandbox Code Playgroud)

但我不想写两次 bar/baz 我只想继承它。

javascript jsdoc

10
推荐指数
1
解决办法
6176
查看次数

反映Type.Field()顺序

我似乎无法在文档中找到它,是否可以保证字段中的顺序与结构中声明的顺序相匹配?我知道它似乎在逻辑上(由于内存布局),它似乎也以这种方式执行,但只是确保.如果这不是保证,我不希望代码稍后破坏.

例如,如果我有

type Foo struct {
    bar    string `tag:"bar"`
    baz    string `tag:"baz"`
    barbaz string `tag:"barbaz"`
}
Run Code Online (Sandbox Code Playgroud)

我运行了这段代码:

var c Foo
t := reflect.TypeOf(c)
nf := t.NumField()

tags := make([]string, nf)

for f := 0; f < nf; f++ {
    tags[f] = t.Field(f).Tag.Get("tag")
}
Run Code Online (Sandbox Code Playgroud)

tags保证是["bar", "baz", "barbaz"]吗?

go

6
推荐指数
2
解决办法
532
查看次数

将 while 循环传递给超时

我觉得这应该很简单,但引用之类的东西总是让我在 bash 中感到困惑。我正在尝试通过 ssh 连接运行命令,并且我想timeout与该命令一起使用。对于简单的命令来说一切都很好,但现在我想运行这样的东西(只是一个模拟):

while read id; do
    find . -name $id -exec echo '{}' \;
    find . -name ${id}-other -exec echo '{}' \;
done < <(grep foo foo.txt | awk '{print $1}')
Run Code Online (Sandbox Code Playgroud)

所以我尝试这样做: timeout 60 while read id; do find . -name $id -exec echo '{}' \;; find . -name ${id}-other -exec echo '{}' \;; done < <(grep foo foo.txt | awk '{print $1}')这当然行不通。所以我尝试将它包装在 a 中bash -c,但我真的不知道如何正确地转义它......

任何帮助将不胜感激..我知道这可能是某些东西的重复,但我实际上环顾四周,我不能完全适应我在这里找到的例子。

linux bash

2
推荐指数
1
解决办法
1949
查看次数

标签 统计

go ×2

bash ×1

javascript ×1

jsdoc ×1

linux ×1

ssh ×1