小编use*_*065的帖子

SSH 配置替换

是否可以在 ssh_config 中编辑替换?我知道我可以匹配通配符,例如:

Host project*
  HostName %h.domain.com
  User project_user
Run Code Online (Sandbox Code Playgroud)

如此使用:

ssh project000
rsync data project123:~
Run Code Online (Sandbox Code Playgroud)

但更复杂的规则可能吗?与主机名别名匹配怎么样(无需显式生成每个可能的组合)?

p    -> project000.domain.com
p1   -> project001.domain.com
p123 -> project123.domain.com
Run Code Online (Sandbox Code Playgroud)

以防万一:我同时使用 bash 和 zsh

ssh

6
推荐指数
1
解决办法
1363
查看次数

来自 FIFO 的多个读取器

是否可以在多个读取器之间拆分 STDIN,从而有效地成为作业队列?我想将每一行传递给一个读者。命名管道几乎可以工作,但同时读取会干扰:

阅读器.sh

#!/usr/bin/env bash
while read line
do
  echo $line
done <  fifo
Run Code Online (Sandbox Code Playgroud)

作家.sh

#!/usr/bin/env bash
while true
do
  echo "This is a test sentance"
  sleep 1
done
Run Code Online (Sandbox Code Playgroud)

执行:

mkfifo fifo
./reader.sh &
./reader.sh &
./writer.sh > fifo
Run Code Online (Sandbox Code Playgroud)

偶尔输出(特别是如果读者和作者在不同的窗口中)

This is atetsnac
Ti sats etnesats etne etsnac
isats etnes etsnac
Tisi etsnac
hi etsnac
Ti sats etn
hsi etsnac
Run Code Online (Sandbox Code Playgroud)

笔记:

  • 我知道有更好的方法,只是好奇这是否可以奏效
  • 我认为这不是错误,因为我已经测试了 Linux 和 OSX 机器
  • 我想要每行一个消费者,这排除了 T 恤
  • 我想使用 STDIN,排除 xargs
  • GNU coreutils split 可以分配轮询,但不是首先可用
  • GNU …

bash stdin fifo

5
推荐指数
2
解决办法
2794
查看次数

标签 统计

bash ×1

fifo ×1

ssh ×1

stdin ×1