我有一个问题,我认为什么是操作员或论点传递者,但谷歌没有发现任何东西。它所包含的脚本是
#!/bin/sh
ln mopac.in FOR005
mopac >& FOR006
mv FOR006 mopac.out当我调用"mopac mopac.in“时,程序运行得很好,但是,出于我的需要,mopac是通过使用这个脚本在另一个程序中调用的,但是似乎输入文件无法通过,所以mopac没有运行。我不明白">&“应该做什么,所以我在故障排除时遇到了问题。
谢谢。
发布于 2012-04-09 14:47:57
>& FILE是不推荐使用的bash (来自csh)对> FILE 2>&1的简写,即重定向标准输出和标准错误。(如果/bin/sh不是bash,这在许多Linux发行版上都是正确的,这将导致一个错误。)较老的bash (3.0之前)更喜欢这种形式,所以大多数较新的bash仍然可以理解它,尽管可能是最近的bash最终删除了它,因为他们似乎终于删除了最近不推荐使用的构造。
您的脚本根本没有传递mopac.in,但似乎假定mopac将从FOR005读取其输入,因此使用ln使其可用。也许您应该将脚本更改为将mopac.in作为参数读取,就像您直接运行它一样。
发布于 2012-04-09 14:49:26
解释在这里:http://tldp.org/LDP/abs/html/io-redirection.html
>&j
# Redirects, by default, file descriptor 1 (stdout) to j.
# All stdout gets sent to file pointed to by j.https://stackoverflow.com/questions/10069831
复制相似问题