什么是最简洁,最简单,最有效,最短,最快,最简单,最优雅的方式在Bash中创建这样的非线性管道?
我有三个命令:mksock,irclogin和ircpingpong.我想管stdin,irclogin和ircpingpong进入mksock,并将mksock管道输入stdout和ircpingpong.这意味着mksock和ircpingpong处于循环中.我画了一张图.
irclogin只需要运行一次并成为mksock的第一个输入.之后,应随时接受ircpingpong和stdin.我目前正在使用管道和这样的临时文件:
#!/bin/bash
server=127.0.0.1
port=6667
infifo=/tmp/ircin
outfifo=/tmp/ircout
pongfifo=/tmp/ircpong
rm $infifo
rm $outfifo
rm $pongfifo
mkfifo $infifo
mkfifo $outfifo
touch $pongfifo
( irclogin | cat - $infifo & tail -f $pongfifo; ) | mksock $server $port | tee $outfifo | stdbuf -oL ircpingpong > $pongfifo &
cat < $outfifo …Run Code Online (Sandbox Code Playgroud) 我没有很多Java经验,但我看到代码中有一个带有某个构造函数的抽象类,然后是没有构造函数的抽象类的子类.然后,当实例化子类时,它使用其超类构造函数构造.是对的吗?
我有这个抽象类:
public abstract class Tile{
public int x;
public int y;
public int z;
protected Color color;
protected float friction;
protected float bounce;
protected boolean liquid;
public void Tile(int x, int y, int z){
this.x = x;
this.y = y;
this.z = z;
init();
}
abstract protected void init();
Run Code Online (Sandbox Code Playgroud)
而这个子类:
public class TestTile extends Tile{
protected void init(){
color = Color.RED;
friction = 0.1f;
bounce = 0.2f;
liquid = false;
}
}
Run Code Online (Sandbox Code Playgroud)
但是当我用这个实例化一个TestTile时:
Tile tile = new TestTile(0, 0, …Run Code Online (Sandbox Code Playgroud) abstract ×1
bash ×1
class ×1
constructor ×1
java ×1
pipelining ×1
shell ×1
subclass ×1
unix ×1