gpt4 book ai didi

bash - 将文本粘贴到终端

转载 作者:行者123 更新时间:2023-12-04 03:14:34 25 4
gpt4 key购买 nike

我有这个小功能:

writecmd () {
perl -e 'ioctl STDOUT, 0x5412, $_ for split //, do{ chomp($_ = <>); $_ }' ;
}

它将我给它的文本打印到 STDOUT,并将它也打印到​​命令行缓冲区。

例如:

[root]$ echo "text" | perl -e 'ioctl STDOUT, 0x5412, $_ for split //, do{ chomp($_ = <>); $_ }' ;
text[root]$ text

我怎样才能让它不将文本输出到 STDOUT 而只输出到 cli 缓冲区?

或者更具体地说,我用它来打印一个变量,然后我使用 read 允许用户在就地编辑它的同时更改该变量,而不是重新编写它。

谢谢。

最佳答案

似乎终端的输出与执行 ìoctl 时提示是否返回有某种关系。例如,以下按预期工作:

use strict;
use warnings;

my $pid = fork();
if ( $pid == 0 ) {
sleep 1;
my $cmd = "ls";
# 0x5412 = TIOCSTI, see c include file: <asm-generic/ioctls.h>
ioctl STDOUT, 0x5412, $_ for split //, $cmd;
}

如果我删除 sleep 1,它将不起作用(从那时起就没有足够的时间让提示返回)。

关于bash - 将文本粘贴到终端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42252801/

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