2012-04-09 73 views
1

我有一个关于我认为是运算符或者参数传递者的问题,但是谷歌并没有发现任何东西。该本载于脚本shell>&operator?

#!/bin/sh 
ln mopac.in FOR005 
mopac >& FOR006 
mv FOR006 mopac.out 

当我打电话“MOPAC mopac.in”,该程序运行正常,但是,对于我的需求,MOPAC被另一个程序中使用这个脚本调用,但它似乎像输入文件无法通过,因此mopac未运行。我不明白“> &”应该这样做,所以我遇到了故障排除问题。

谢谢。

回答

2

>& FILE已弃用bash(从csh> FILE 2>&1的简写形式,即重定向标准输出和标准错误。 (如果/bin/sh不是bash,在许多Linux发行版上都是如此,则会引发错误。)较早的bash(3.0之前)首选此表单,因此最新的bash仍然可以理解,尽管可能最近的bash已经最终删除因为它们似乎最终会消除最近弃用的结构。

你的脚本有不及格mopac.in可言,但似乎假设mopac将从FOR005读取其输入,所以使用ln使其可用那里。也许你应该把脚本改为mopac.in作为参数,就像你直接运行它一样。

+0

啊,似乎这样的伎俩。非常感谢你! – bbxiao1 2012-04-09 06:52:14