1

演算子または引数の受け渡しと思われるものについて質問がありますが、Google は何も見つけていません。これが含まれているスクリプトは

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

「mopac mopac.in」を呼び出すと、プログラムは正常に動作しますが、このスクリプトを使用して別のプログラム内で mopac を呼び出す必要があるため、入力ファイルが渡されていないようで、mopac が実行されていません。">&" の意味がわからないので、トラブルシューティングに問題があります。

ありがとう。

4

2 に答える 2

2

>& FILEbashは(からcsh)非推奨です> FILE 2>&1。つまり、標準出力と標準エラーの両方をリダイレクトします。(多くの Linux ディストリビューションでそうであるように、 で/bin/shはない場合bash、これはエラーを引き起こします。) 古いbash(3.0 より前の) ものはこの形式を好んでいたため、ほとんどの新しいbashものはまだそれを理解していますが、おそらく非常に最近bashでは、最後に、最近の非推奨の構造を削除します。

あなたのスクリプトはまったく渡されていませんが、から入力を読み取るmopac.inと想定しているように見えるので、 を使用してそこで使用できるようにします。おそらく、スクリプトを直接実行するのと同じように、パラメーターとして読み取るようにスクリプトを変更する必要があります。mopacFOR005lnmopac.in

于 2012-04-09T06:47:56.553 に答える
0

ここでの説明: 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.
于 2012-04-09T06:49:26.190 に答える