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
. 이들 모두 오류가 발생합니다. 이 서버에 문제가 발생한 원인은 무엇일까요?
답변1
빈 줄에 보이지 않는(인쇄할 수 없는) 문자가 포함되어 있고 서버가 해당 문자를 명령 이름인 것처럼 실행하려고 시도하는 것 같습니다. 따라서 오류가 발생합니다 : not found [No such file or directory]
. 빈 줄을 제거하거나 실제로 비어 있는지 확인하세요.
편집: OP의 의견은 코드가 Windows에서 작성되었으므로 이것이 실제로 사실임을 확인합니다. Windows에서 ASCII 텍스트 파일은 각 줄을 개행 + 캐리지 리턴 문자로 끝나는 반면 UNIX는 개행만 사용합니다.
이 문제를 해결하려면 다음을 수행할 수 있습니다.
- Linux의 편집기에 코드를 직접 복사하여 붙여넣기
- Windows 편집기가 줄 끝 문자를 UNIX 표준으로 변환하도록 설정되어 있는지 확인하세요.
dos2unix
Windows ASCII 파일을 UNIX 파일로 변환하려면 이 명령을 사용하십시오.