Shell中程序将重定向符当成了参数了怎么处理?

2013-05-06 21:58:09 +08:00
 YUCOAT
典型如:
scrapy crawl simple > out

它可能会将 > 和out当成参数传递给scrapy

我尝试过以下办法:
t=`scrapy crawl simple`;echo $t >> out
scrapy crawl simple 2&>1 out

都不管用。

我觉的我的shell学得还可以,但是长时间没有使用稍复杂功能的需要,然后就忘了一大半!
3548 次点击
所在节点    Linux
6 条回复
tangzx
2013-05-06 21:59:56 +08:00
\>\>试试
YUCOAT
2013-05-06 22:03:17 +08:00
我的错,我没有处理好。我这样之后:
scrapy crawl simple 2> out
程序正常了。
chemzqm
2013-05-06 22:11:04 +08:00
这个...貌似你用的不是Bash。用命令
echo $SHELL
看看你用的是什么shell
wwwjfy
2013-05-06 22:56:52 +08:00
这个不会是“可能”啊... > out 没可能当成参数,如果是常见的sh, bash, zsh的话

2>out 是说把error定向到out文件
swulling
2013-05-06 23:09:43 +08:00
如果是bash的话,是没有可能的。。。因为传给程序参数的是shell,程序只能被动接受
CNpigCA
2013-05-07 11:21:16 +08:00
如果是想同时输出错误和标准输出,bash可以用 命令 &> 输出文件,或者 命令 >& 输出文件.
你的第二个输出到out其实你的标准输出还是在显示器上, 你可以这样写也成 命令 > 输出文件 2>&1

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/67953

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX