2010-12-28 10 views
3

I持って/ STD errが以下のようにSTDリダイレクトするスクリプト:Kornシェル(ksh)の場合はリダイレクト

SCRIPTS=/test/scripts 
LOG=/test/log 
echo $SCRIPTS 
echo $LOG 
$SCRIPTS/dmm_algo_ofac_daily_sched.ksh >> $LOG/test12.log 2>&1 

このスクリプトは、私は以下のようにそれを交換した場合$SCRIPTS

$LOGを拡張することはできませんが。

/test/scripts/daily_sched.ksh >> /test/log/test12.log 2>&1 

それは以下のように文句を言う:

: bad file unit numberd/test.ksh: line 33: 1 

また、保存されているディレクトリからスクリプトを呼び出すことができません。私がすれば

./test.kshそれは私にエラーが見つかりませんファイルが見つかりません。私はksh /test/sched/test.ksh経由でそれを実行することができます。

誰かが私を助けることができますか?前もって感謝します。

+0

どのバージョンのksh、どのプラットフォームでですか? Linux上でksh93またはpdkshのいずれかを使用しても問題はありません。 –

+0

kシェルのバージョンはksh93 – sab

答えて

4

私はこの問題は、あなたが取得しているエラーメッセージが原因キャリッジリターンの自体を上書きされるので、DOS/Windowsのの行末の

であることはほぼ確実です。 dos2unixを使用してファイルを修正できます。

+0

はい、これはしばしば問題になることがありますので、 'od -c'を実行してください。 – Xailor

+0

それは、ありがとうDennis – sab

0

私は、あなたの根本的な原因がリダイレクトとは何の関係もないと思います。

あなたが出品したスクリプトは/test/sched/test.kshまたは/test/scripts/test.kshですか?あなたは確信していますか?

+0

です。これは/test/sched/test.kshです。また、kシェルのバージョンはksh93です。 – sab

1

コマンドラインでインタープリタの名前を付けずに直接呼び出すために、最初の行に魔法#!/bin/kshを追加します。

関連する問題