我正在尝试将输出日志通过管道传输到另一个脚本进行处理。但是,如果我正确理解这个问题,powershell 会等待第一个命令完成,然后再将输出发送到第二个命令。
例如,这按预期工作(脚本收到“hi”),因为echo很快完成:
echo "hi" | python script.py
Run Code Online (Sandbox Code Playgroud)
而在这个(caddy是网络服务器,所以它没有完成)中,球童的标准输出永远不会到达脚本的标准输入:
caddy run | python script.py
Run Code Online (Sandbox Code Playgroud)
是否可以将第一个命令的输出异步转发到第二个命令,而无需等待第一个命令完成?
--
编辑:最小的例子
echo "hi" | python script.py
Run Code Online (Sandbox Code Playgroud)
caddy run | python script.py
Run Code Online (Sandbox Code Playgroud)
# output.py
from time import sleep
while True:
print("SENDING")
sleep(1)
Run Code Online (Sandbox Code Playgroud)
这有效(打印到 stdout Received: SENDING):
python onetime.py | python input.py
Run Code Online (Sandbox Code Playgroud)
这不起作用(没有打印任何内容):
python output.py | python input.py
Run Code Online (Sandbox Code Playgroud) 我在对话框中有 TextField,每次打开对话框时我都想聚焦它。我尝试使用inputRef回调,但 TextField 没有获得焦点。将 prop添加autoFocus到 TextField 也没有帮助。
最小的例子:
import { Button, Dialog, DialogContent, TextField } from "@mui/material";
import { useState } from "react";
function ExampleDialog(props: { isOpen: boolean; onClose: () => void }) {
return (
<Dialog open={props.isOpen} onClose={props.onClose}>
<DialogContent>
<TextField inputRef={(input) => input && input.focus()} fullWidth />
</DialogContent>
</Dialog>
);
}
function App() {
const [isOpen, setIsOpen] = useState(false);
return (
<div>
<Button
variant="contained"
color="success"
onClick={() => {
setIsOpen(true);
}}
>
Open dialog
</Button>
<ExampleDialog …Run Code Online (Sandbox Code Playgroud)