假设我有一个如下脚本:
useless.sh
echo "This Is Error" 1>&2
echo "This Is Output"
Run Code Online (Sandbox Code Playgroud)
我有另一个shell脚本:
alsoUseless.sh
./useless.sh | sed 's/Output/Useless/'
Run Code Online (Sandbox Code Playgroud)
我想将"This Is Error"或者useless.sh中的任何其他stderr捕获到变量中.我们称之为ERROR.
请注意,我正在使用stdout.我想继续使用stdout,因此在这种情况下将stderr重定向到stdout是没有用的.
所以,基本上,我想做
./useless.sh 2> $ERROR | ...
Run Code Online (Sandbox Code Playgroud)
但这显然不起作用.
我也知道我能做到
./useless.sh 2> /tmp/Error
ERROR=`cat /tmp/Error`
Run Code Online (Sandbox Code Playgroud)
但那是丑陋和不必要的.
不幸的是,如果没有答案出现在这里,那就是我将要做的事情.
我希望还有另一种方式.
有没有更好的想法?
好吧,所以,我在网上看了一下,看起来并不是很多其他人都有这个问题,但也许其他问题与我们正在做的事情有关.
我已经马上将它提炼到我认为有用的测试用例:
配置/ deploy.rb:
## Excerpt
task :big_delay, :roles => :web do
run "sleep 480"
run "echo Meow Meow Meow"
end
Run Code Online (Sandbox Code Playgroud)
和stupid_script.sh:
#!/bin/sh
ssh foo 'sleep 480; echo Meow Meow Meow'
Run Code Online (Sandbox Code Playgroud)
其中foo是我们部署到的同一服务器的名称.
当我运行这两个时,它应该连接到另一个盒子,8分钟什么也不做,然后吐出一些无用的文本并完成.
stupid_script工作,cap任务失败.我看到远程命令用ps xf完成,但是cap似乎不再注意了.如果睡眠是20而不是240,则cap任务正常.
显然这个任务是无用的,但我们确实在部署上运行了昂贵的东西,触发了这个,我已经做到这一点,以排除对ssh的任何责任.
另一个数据点,如果我们进入框并将代码放在那里然后从那里运行cap deploy,那么它工作正常.
所以......在ssh和capistrano之间似乎有一些奇怪的相互作用.思考?
关于我为自己写的操作员的快速提问.
请原谅我的穷人的大理石图:
zip
aa--bb--cc--dd--ee--ff--------gg
--11----22--33--------44--55----
================================
--a1----b2--c3--------d4--e5----
combineLatest
aa--bb--cc--dd--ee--ff--------gg
--11----22--33--------44--55----
================================
--a1b1--c2--d3--e3--f3f4--f5--g5
zipLatest
aa--bb--cc--dd--ee--ff--------gg
--11----22--33--------44--55----
================================
--a1----c2--d3--------f4------g5
Run Code Online (Sandbox Code Playgroud)
zipLatest(我写的那个)几乎同时发射zip,但没有排队zip包括.
我已经实现了它,我只是想知道这是否已经存在.我知道我过去写了一个类似的方法,通过随机的机会发现我在sample不知情的情况下写了算子.
那么,这已经存在于框架中,还是作为一个我没有想到的元素的微不足道的组合存在?
注意:我不想依赖我的输入相等来进行重复数据删除(a la distinctUntilChanged).它应该使用仅"a"在一定间隔内输出的信号.
所以,我想弄出一些东西,到目前为止我还没有看到任何东西.
我设置了一个docker hub帐户,我想从CI服务器推送到私人仓库,然后从生产中的盒子中取出.
但据我所知,唯一的方法就是去每台机器并输入我的密码,就像我用来登录网页一样.
这不可能是对的,是吗?有没有我错过的东西?