AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-7157

Cyker's questions

Martin Hope
Cyker
Asked: 2019-12-10 09:50:00 +0800 CST

bash:具有管道、三通和流程替换的竞争条件

  • 3

我想看到twice被输出两次,但这个脚本只会输出一次:

dump() {
    (sleep 1; cat) > "$1"
}
(sleep 0; echo "twice") | tee >(dump "./a.txt")
echo "$(< "a.txt")"

要看两次,我必须调整睡眠时间:

dump() {
    (sleep 0; cat) > "$1"
}
(sleep 1; echo "twice") | tee >(dump "./a.txt")
echo "$(< "a.txt")"

是什么导致了这里的比赛条件?

bash tee
  • 3 个回答
  • 586 Views
Martin Hope
Cyker
Asked: 2019-12-10 08:56:40 +0800 CST

bash:对循环条件和主体使用不同的输入流

  • 4

我有一个带有这样的while循环的脚本:

while IFS= read -r name; do
    {body}
done < names.txt

循环条件需要从文件中读取名称,但{body}需要从标准输入中读取;上面的脚本会{body}从文件中读取,这是一个错误;

我可以用另一个 fd 解决:

while IFS= read -r name <&3; do
    {body}
done 3< names.txt

问题:

  1. 这是最好的解决方案吗?

  2. 使用文件描述符 3 是否安全/推荐?较高的 fd 数会减少引发冲突的机会吗?

bash io-redirection
  • 1 个回答
  • 216 Views
Martin Hope
Cyker
Asked: 2019-01-14 22:44:53 +0800 CST

Linux 上文件缓存的最佳块大小是多少?

  • 6

设备块大小通常为 512 字节,而文件系统块大小通常为 4096 字节。为什么它们不同?为什么 512B 和 4KB 是设备和文件系统块大小的好选择?什么块大小最适合在用户空间库中缓存磁盘读取?

filesystems cache
  • 1 个回答
  • 2379 Views
Martin Hope
Cyker
Asked: 2019-01-13 09:38:20 +0800 CST

Fedora 29 Copr 上没有 Python

  • 3

我的一个 srcrpm提交给Copr构建失败,因为没有 Python 实现;这是因为 src rpm 本身有问题,还是 copr 机器上根本没有 Python 实现,或者我错过了一些设置?

checking for perl... /usr/bin/perl
checking for python... no
BUILDSTDERR: configure: error: You need 'python' to compile XXX
fedora rpmbuild
  • 1 个回答
  • 308 Views
Martin Hope
Cyker
Asked: 2018-12-18 01:59:08 +0800 CST

管道进入一个诅咒程序

  • 3

库 ncurses 提供了一个交互式用户界面。但是,我想知道如果您将某些内容导入程序会发生什么。所以我尝试这样:

# echo foo | my_curses_prog

似乎标准输入上总是有输入待处理,但getch无法读取任何内容。那么引擎盖下发生了什么?


更新的测试程序:

#include <ncurses.h>

int main()
{
    WINDOW *win = initscr();
    nodelay(win, 0);
    refresh();
    FILE *fp = fopen("my_curses_prog.log", "w");
    while (1) {
        int ch = getch();
        fprintf(fp, "%d\n", ch);
        fflush(fp);
    }
    fclose(fp);
    endwin();
    return 0;
}
terminal pipe
  • 1 个回答
  • 824 Views
Martin Hope
Cyker
Asked: 2018-08-01 08:30:58 +0800 CST

发现:特别对待斜线

  • 1

我想find用来匹配路径,但我发现了这个:

-path pattern

文件名与外壳模式模式匹配。元字符不处理/' or 。特别; 所以,例如,

  find . -path "./sr*sc"

./src/misc将为名为(如果存在)的目录打印一个条目。

我怎样才能让它只匹配当前目录中的文件?我需要其他工具来完成这项工作吗?

编辑。正如这里所建议的,这里有一些细节。做这项工作有-maxdepth和-regex使用。然而,在实际应用程序中,路径可能是一个变量而不是一个简单的常量,这-maxdepth不会很好地工作并且-regex可能看起来有点矫枉过正。所以我想知道是否有一个简单的解决方案find让它尊重斜线。下面是描述其行为的 rsync 文档,它与我想要的非常接近。

目前最好的解决方案是使用正则表达式,但如果你知道任何可以使它更简单的东西,那将是受欢迎的。


作为我想要的一个例子,这里是 rsync 模式规则:

  • '*' 匹配任何路径组件,但它在斜杠处停止。

  • 使用 '**' 匹配任何内容,包括斜线。

find
  • 3 个回答
  • 173 Views
Martin Hope
Cyker
Asked: 2018-07-31 06:55:14 +0800 CST

如何消除警告:mockbuild 不存在

  • 4

我在 Fedora 上从 SRPM 构建一个包:

$ rpmbuild --rebuild *.src.rpm

...
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
...

该软件包已构建,但有许多此类mockbuild does not exist警告。即使我安装了软件包,我的系统上似乎也没有这样的帐户mock。我还缺少其他软件包吗?这是包裹或我的系统的故障吗?如何消除这些警告?

fedora rpm
  • 2 个回答
  • 9447 Views
Martin Hope
Cyker
Asked: 2018-07-30 01:15:10 +0800 CST

在 ssh_config 中强制分配 PTY

  • 2

要远程运行交互式程序,应该使用ssh -t <host>. 但是这个-t选项也有缺点,所以在非交互式程序上使用它并不好。

我的问题是:我有几台机器。其中一些用于交互式程序,而另一些用于非交互式程序。所以我必须准确记住哪些需要-t。是否可以添加它,~/.ssh/config这样我就不必记住它了?

基本上我想要的是这样的:

Host interactive
    HostName example.com
    User user
    Option "-t"
ssh ssh-config
  • 1 个回答
  • 1574 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve