有人能告诉我为什么这不起作用?我正在玩文件描述符,但感觉有点迷失.
#!/bin/bash
echo "This"
echo "is" >&2
echo "a" >&3
echo "test." >&4
Run Code Online (Sandbox Code Playgroud)
前三行运行正常,但最后两行错误.为什么?
我正在阅读一堆由空格分隔的整数或使用标准中的换行符Scanner(System.in).
有没有更快的方法在Java中这样做?
我发现了非常有用的语法
parser.add_argument('-i', '--input-file', type=argparse.FileType('r'), default='-')
Run Code Online (Sandbox Code Playgroud)
用于指定输入文件或使用stdin - 我想在程序中使用它们.但是,并不总是需要输入文件.如果我没有使用-i或重定向输入
$ someprog | my_python_prog
$ my_python_prog < inputfile
Run Code Online (Sandbox Code Playgroud)
我不希望我的Python程序等待输入.我希望它只是移动并使用默认值.
我编写了一个命令行实用程序,它使用getopt来解析命令行中给出的参数.我还希望有一个文件名是一个可选参数,比如它在其他实用程序中,如grep,cut等.所以,我希望它具有以下用法
tool -d character -f integer [filename]
Run Code Online (Sandbox Code Playgroud)
我该如何实施以下内容?
我想做的是以下内容:
stdin入变量AAA,而不会失去定界符符号(\n,\r,\t等)到另一个命令目前的问题是,我无法用read命令读取它,因为它停止在换行时读取.
我可以读取stdin cat,像这样:
my_var=`cat /dev/stdin`
Run Code Online (Sandbox Code Playgroud)
,但后来我不知道如何打印它.因此换行符,制表符和其他分隔符仍然存在.
我的示例脚本如下所示:
#!/usr/local/bin/bash
A=`cat /dev/stdin`
if [ ${#A} -eq 0 ]; then
exit 0
else
cat ${A} | /usr/local/sbin/nextcommand
fi
Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个启动子进程的Python脚本,并写入子进程stdin.我还希望能够确定子进程崩溃时要采取的操作.
我正在尝试启动的过程是一个程序nuke,它有自己的内置版本的Python,我希望能够提交命令,然后告诉它在执行命令后退出.到目前为止,我已经知道,如果我在命令提示符上启动Python,然后nuke作为子进程启动,那么我可以输入命令nuke,但我希望能够将所有这些都放在一个脚本中,以便主Python程序可以启动nuke然后写入其标准输入(因此也可以写入其内置版本的Python),并告诉它做一些时髦的东西,所以我编写了一个脚本,nuke如下所示:
subprocess.call(["C:/Program Files/Nuke6.3v5/Nuke6.3", "-t", "E:/NukeTest/test.nk"])
Run Code Online (Sandbox Code Playgroud)
然后没有任何事情发生,因为nuke等待用户输入.我现在如何写入标准输入?
我这样做是因为我正在运行一个插件nuke,导致它在渲染多个帧时间歇性地崩溃.所以我希望这个脚本能够启动nuke,告诉它做某事然后如果它崩溃了,再试一次.因此,如果有办法赶上崩溃并且仍然可以,那就太棒了.
我知道PHP通常用于web开发,那里是没有标准的输入,但是PHP声称是可用作通用脚本语言,如果你不遵循这是时髦的基于web的约定.我知道PHP打印到stdout(或者你想要调用的任何东西)print和echo,这很简单,但我想知道PHP脚本如何从中获取输入stdin(特别是fgetc(),但任何输入函数都是好的),或者是这甚至可能吗?
下面的代码几乎可以工作,但这不是我的意思:
ob_start();
echo 'xxx';
$contents = ob_get_contents();
ob_end_clean();
file_put_contents($file,$contents);
Run Code Online (Sandbox Code Playgroud)
有更自然的方式吗?
在Python中,如何检查是否sys.stdin有数据?
我发现不仅os.isatty(0)可以检查stdin是否连接到TTY设备,还可以检查是否有可用的数据.
但如果有人使用像
sys.stdin = cStringIO.StringIO("ddd")
Run Code Online (Sandbox Code Playgroud)
在使用之后os.isatty(0),它仍然返回True.我需要做些什么来检查stdin是否有数据?
stdin ×10
python ×4
stdout ×3
bash ×2
php ×2
shell ×2
argparse ×1
arguments ×1
command-line ×1
file ×1
file-io ×1
inputstream ×1
java ×1
multiline ×1
nuke ×1
optimization ×1
perl ×1
redirect ×1
subprocess ×1