gpt4 book ai didi

bash - 为什么 ack over ssh 不起作用?

转载 作者:行者123 更新时间:2023-12-02 13:54:19 25 4
gpt4 key购买 nike

我有一个简单的 bash 脚本,可以通过 ssh 删除远程服务器上的一些文件夹。它基本上是这样做的:

THE_HOST=12.34.56.78
ssh me@$THE_HOST "rm /the/file/path/thefile.zip"

这非常有效。在执行此操作之前,我经常使用 ack 在文件夹中的文件内容中搜索字符串:

ack thestring /the/folder/path/

当我通过 ssh 进入服务器并运行它时,它工作得很好,但是当我在一个命令中使用它时,它不起作用:

ssh me@$THE_HOST "ack thestring /the/folder/path/"

这似乎永远卡住或运行:我没有得到任何输出,命令永远不会结束。有人知道为什么这对 ack 不起作用吗?

最佳答案

可能是 ack 在终端中运行时表现不同。尝试使用 -t 参数

ssh -t me@$THE_HOST "ack thestring /the/folder/path/"

当 ack 检测到 stdin 不是终端(tty 设备)时,它将尝试从 stdin 而不是给定的文件/文件夹中读取要搜索的文本。这就是当您通过 ssh 运行它时发生的情况,stdin 将连接到 ssh 连接,这看起来不像是要确认的终端(tty)。

ssh 的 -t 参数改为分配一个 tty 并将其连接到标准输入/您运行的程序之外,然后 ack 将认为它在终端中运行,而是使用文件/文件夹参数用于搜索。参见 http://github.com/beyondgrep/ack2/issues/659

关于bash - 为什么 ack over ssh 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52071897/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com