2016-04-22 25 views
0

私はスクリプトを読み込み、パラメータファイルを読み込み、そのスクリプトの各行の値でいくつかの処理を行います。私の入力ファイルには区切り文字として空白があります。Unixスクリプト読み込み中のcatファイルのループ "No such file or directory"エラー

奇妙なことは、古いバージョンのLinuxでは動作しますが、新しいバージョンでは動作しません。

#! /bin/ksh 
su root "cat /var/opt/OV/tmp/HPOV_gg.log" | while read Line 
do 
    echo "${Line}" 
done 

Error: bash: cat /var/opt/OV/tmp/HPOV_gg.log: No such file or directory

エラーは異なる方法でcatコマンドを解析し、新しいLinuxバージョンとは何かをOBVました。

どうすればこの問題を解決できますか?または、この新しいLinuxバージョンで動作させるためにスクリプトを書き直すことはできますか?

+1

'su root" ls -l /var/opt/OV/tmp/HPOV_gg.log "'の出力を含めるように質問を編集できますか? –

+0

[elp000161(root):/ root] su root "ls -l /var/opt/OV/tmp/HPOV_gg.log" bash:ls -l /var/opt/OV/tmp/HPOV_gg.log:いいえファイルまたはディレクトリ これは問題でした。 Johnのように-cパラメータを追加しました。 – Mathias1

答えて

3

sudoを使ってrootとしてコマンドを実行する方が良いです。クォートは必要ありません。sudoアクセスは設定ファイルを使ってきめ細かく制御できます。

sudo cat /var/opt/OV/tmp/HPOV_gg.log | while ... 

だけ知っているので、あなたはsu root -c "cat file"を書き込むことによって、あなたのsuコマンドを修正することができます。コマンドは-cオプションを使用して渡す必要があります。しかし、まだ、sudoは良いです。

関連する問題