0

2台のマシンでIFステートメントを実行しようとしています-

1.SunOS 5.8 Generic_Virtual sun4u sparc SUNW、Sun-Fire-V240 (bash)

2.SunOS 5.10 Generic_127112-11 i86pc i386 i86pc (tcsh)

シェルから実行するコマンド-

if ( echo 13 | grep -w date +%e>/dev/null ) ; 次に、「現在」をエコーし​​ます。フィ

マシン 1 では正常に動作しますが、マシン 2 (tcsh) では次のエラーが発生します。

if: 式の構文。

tcsh でこれを修正するにはどうすればよいですか? これをcrontabファイルから実行する必要があります-

30 09 * * * if ( echo 13 | grep -w date +%e>/dev/null ) ; 次に、「現在」をエコーし​​ます。フィ

4

2 に答える 2

0

おそらく、これらのマシンで異なるシェルを使用しているため、構文エラーが説明されます。コードでサブシェルを使用していますが、シェルごとに構文が異なる場合があります。

また、エコーの stdout を /dev/null にリダイレクトしているため、何も表示されないことにも注意してください。

于 2012-11-13T16:17:20.310 に答える
0

/bin/shログイン シェルに関係なく、cron ジョブは で実行されます。

コマンドラインからこれを実行するには、最初/bin/shに (または、必要に応じて/bin/bash) を開始します。

于 2012-12-15T14:05:07.787 に答える