V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
YUCOAT
V2EX  ›  Linux

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

  •  
  •   YUCOAT · 2013-05-06 21:58:09 +08:00 · 3361 次点击
    这是一个创建于 3979 天前的主题,其中的信息可能已经有所发展或是发生改变。
    典型如:
    scrapy crawl simple > out

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

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

    都不管用。

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

    2>out 是说把error定向到out文件
    swulling
        5
    swulling  
       2013-05-06 23:09:43 +08:00
    如果是bash的话,是没有可能的。。。因为传给程序参数的是shell,程序只能被动接受
    CNpigCA
        6
    CNpigCA  
       2013-05-07 11:21:16 +08:00
    如果是想同时输出错误和标准输出,bash可以用 命令 &> 输出文件,或者 命令 >& 输出文件.
    你的第二个输出到out其实你的标准输出还是在显示器上, 你可以这样写也成 命令 > 输出文件 2>&1
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1531 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 17:09 · PVG 01:09 · LAX 10:09 · JFK 13:09
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.