考虑一下这个Bash代码:
(cmd1 & cmd2) | consumer
Run Code Online (Sandbox Code Playgroud)
consumer标准输入可能会出现什么样的情况?
cmd1,然后输出cmd2?cmd1任意点缀的线条来自cmd2?cmd1任意散布的字节来自cmd2?我正在尝试将一个特定地址传递给php脚本,但似乎我的transport_maps没有触发,而是使用了virtual_transport.这是我有的:
@ example.com列在virtual_mailbox_domains中,并且传递到虚拟邮箱的工作正常.
但我需要将foo@example.com的所有消息转发给dovecot-lda(在virtual_transport中指定),但转发给另一个服务.
这是我对virtual_transport的交付方法:
dovecot unix - nn - - pipe flags = DRhu user = vmail:vmail argv =/usr/lib/dovecot/dovecot-lda -f $ {sender} -d $ {recipient}
这是我想管道所有foo@example.com的地方
php_script unix - nn - - pipe flags = Fq user = www-data argv =/home/script.php
postconf -n
alias_database =散列:在/ etc /别名
alias_maps =散列:在/ etc /别名
append_dot_mydomain =无
一击=没有
config_directory是= /等/后缀
dovecot_destination_recipient_limit = 1
mailbox_size_limit = 0
milter_default_action =接受
milter_protocol = 2
mydestination中=本地主机
MYHOSTNAME =本地主机
mynetworks中= 127.0. 0.0/8 [::ffff:127.0.0.0]/104 [:: 1]/128
myorigin =/etc/mailname
non_smtpd_milters …
我正在通过Shell(Bash)Scripting的入门读书,并有以下疑问:
为什么以下命令不打印
cp's目录的内容:which cp | ls -l根据定义,管道是否意味着我们将一个命令的输出传递给另一个命令,即重定向输出?
有人可以帮我吗 ?我是新手..
我正在尝试做什么:
find "${TEMPDIR}" -name *.[Tt][Xx][Tt] | /
xargs dos2unix -k | /
dd if=/dev/null of="$_" bs=1 seek=$(echo $(stat --format=%s "$_" ) - $( tail -n1 "$_" | wc -c) | bc )
Run Code Online (Sandbox Code Playgroud)
我无法将(EDIT 输出)文件名传输xargs dos2unix -k | /到第三行,我收到以下错误:
stat: cannot stat '': No such file or directory
tail: cannot open '' for reading: No such file or directory
dd: failed to open '': No such file or directory
Run Code Online (Sandbox Code Playgroud)
显然,我错误地认为这"$_"足以通过管道传递输出.
如何将输出(文本文件)传输xargs …
我的问题是关于linux中的pipe()函数:http://linux.die.net/man/2/pipe
我的问题是:"linux中只有一个管道吗?".我的意思是,如果我有多个写入管道的进程,它是否是相同的管道,这意味着一旦我从管道读取数据,我可能会在同一个read()操作中从不同进程获取数据?
我有这个任务。首先,我用一个src做一件事。然后我用另一个src做另一件事。如何将它们“合并”为一条管道?
gulp.task('css', function() {
gulp.src('site/patterns/site/site.scss')
.pipe(sass().on('error', sass.logError))
.pipe(autoprefixer())
.pipe(rename('index.css'))
.pipe(gulp.dest('assets/css'))
.pipe(minifyCss())
.pipe(rev())
.pipe(gulp.dest('assets/css'))
.pipe(rev.manifest())
.pipe(revDel({ dest: 'assets/css' }))
.pipe(gulp.dest('assets/css'))
.pipe(notify("CSS generated!"))
;
gulp.src( ['assets/css/index-*.css'], {read: false})
.pipe( revOutdated() ) // leave 2 recent assets (default value)
.pipe( cleaner() );
});
Run Code Online (Sandbox Code Playgroud) 我正在尝试利用STDINJulia 的构造来读取unix命令的输出:
#!/usr/bin/julia
readline(STDIN)
Run Code Online (Sandbox Code Playgroud)
然后在我的终端:
$ cat myfile.txt | ./pipe.jl
Run Code Online (Sandbox Code Playgroud)
但我没有得到任何输出.我究竟做错了什么?
我只是想了解管道,我正在研究一个例子:
#define _XOPEN_SOURCE 700
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
int main()
{
pid_t p;
int status;
int pipefd[2];
pipe(pipefd);
p = fork();
if(p == 0)
{
dup2(pipefd[1], 1);
close(pipefd[0]);
close(pipefd[1]);
execlp(argv[1], argv[1], NULL);
perror(argv[1]);
exit(1);
}
dup2(pipefd[0], 0);
close(pipefd[0]);
close(pipefd[1]);
execvp(argv[2], argv+2);
perror(argv[2]);
return 1;
}
Run Code Online (Sandbox Code Playgroud)
我不明白为什么这段代码在使用之前关闭了pipefd.
为什么在这里关闭?
我正在尝试使用管道中的typescript将数字值转换为角度为2的字符串.它抱怨
类型字符串不能分配给类型编号
.我的管道如下.
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({ name: 'pxsuffix'
}) export class pxsuffix implements PipeTransform {
transform(input: number): number {
if ((input > 0)) {
input = input.toString(),
}
return (
input = input + 'px',
);
}
}
Run Code Online (Sandbox Code Playgroud) 假设您具有以下功能:
def get_city_temp(city_id) do
'blahblahcityforcastfortoday.com/request/#{city_id}'
|> HTTPoison.get
|> parse_body
|> get_forecast
|> get_temp
end
Run Code Online (Sandbox Code Playgroud)
现在说GET失败了,所以响应是:
{:ok, %HTTPoison.Response{status_code: 400, ...}}
Run Code Online (Sandbox Code Playgroud)
但是get_forecast期待一个形成良好的身体,因此会抱怨传递给它的结构,或丢失的钥匙等.处理这样的错误的最佳方法是什么?在其他语言中,我只是将所有函数调用包装在try catchs中,并返回带有成功报告的元组.在这种情况下,我不确定如何构建我的代码以最好地向用户报告错误.
pipe ×10
bash ×3
linux ×3
angular ×1
asynchronous ×1
buffer ×1
c ×1
elixir ×1
gulp ×1
julia ×1
mail-server ×1
postfix-mta ×1
sh ×1
shell ×1
ubuntu-14.04 ×1
unix ×1