Linuxサーバーで次のスクリプトを使用しています。そしてそれは与えています:
: not found [No such file or directory]
これはスクリプトです:
# ------------------------------------------------------------------
# K.Sugunan Host health check
# Description
#
# This script to initiate health check on servers.
# It will check for CPU, memory and some connectivity with
# up stream and down stream system.
#
# ------------------------------------------------------------------
# Applying initial variables and loading config parameters
DOCROOT=$(pwd)"/"
TIME_NOW=$(date +"%Y-%m-%d %H:%M:%S")
echo $DOCROOT
. $DOCROOT"config/main.sh"
. $DOCROOT"config/web.sh"
. $DOCROOT"config/telnet.sh"
echo $CPU_A
エラーは次のようになります。
: not found [No such file or directory]
: not found [No such file or directory]
/home/sugunan/phobos/
: not found [No such file or directory]
: cannot open [No such file or directory]os/
次の方法でスクリプトを実行します
ksh poc.sh
sh poc.sh
./poc.sh
上記のすべてが同様のエラーを出します。私も含めます#!/bin/bash
まだエラーが存在します。私が試してみました #!/bin/ksh
および#!/usr/bin/ksh
も。これらすべてがエラーを引き起こします。このサーバーの問題の理由は何ですか?
空の行に非表示(印刷不可)の文字が含まれているように見え、サーバーはそれをコマンドの名前のように実行しようとしています。したがって、エラー: not found [No such file or directory]
。空の行を削除するか、それらが本当に空であることを確認してください。
編集:OPのコメントは、コードがWindowsで記述されているため、実際にそうであることを確認しています。 Windowsでは、ASCIIテキストファイルは各行を改行+復帰文字で終了しますが、UNIXは改行のみを使用します。
これを解決するには、次のいずれかを行います。
dos2unix
コマンドでWindowsを変換するASCIIファイルをUNIXのファイルに変換する