명령문을 찾을 수 없으며 열 수 없습니다 =: 해당 파일이 없습니다

명령문을 찾을 수 없으며 열 수 없습니다 =: 해당 파일이 없습니다

안녕하세요. 저는 Ubuntu 19.10을 사용하고 있으며 bash 버전은 5.0.3(1) 릴리스입니다. 스크립트를 작성하려고 합니다. 내 bash를 확인했습니다.어느 강타명령과 반환은 다음과 같습니다/usr/bin/bash그래서 스크립트의 첫 번째 줄에 넣습니다.

#!/usr/bin/bash
declare -i n = 1
while [ $n <= 99 ]
do 
  echo $n 
  n = $((n+2))
done

실행하려고 하면 두 가지 오류가 발생합니다. test.sh:2: 명령문: 찾을 수 없음그리고test.sh: 3: 열 수 없습니다=: 해당 파일이 없습니다

답변1

스크립트 변경을 고려해야 할 네 가지 사항이 있습니다. 그 중 두 가지는 구문과 관련되어 있습니다.

  1. 과제 주변에는 공백이 없어야 합니다 =. 두 곳에서 이 오류가 발생했습니다.
  2. 작거나 같은 산술 테스트를 수행하려면 , -ltnot 을 사용하십시오 <=. 이는 <=이름이 지정된 파일의 입력 리디렉션입니다 =. 여기서 " no such file" 오류가 발생합니다.

나머지 두 개는 다음과 같습니다.

  1. 항상 큰따옴표가 확장됩니다. . 대신 echo "$n"or printf '%s\n' "$n"대신 echo $n사용하십시오 [ "$n" -lt 99 ]. [ $n -lt 99 ]일반적으로 쉘은 변수 값을 단어로 분할하고 각 단어에 파일 이름 글로빙 규칙을 적용합니다.
  2. 여기서는 필요하지 않습니다 declare -i. bash변수를 정수로 선언해야 하는 경우는 거의 없습니다.

declare not found또한 " " 오류가 발생하므로 bash스크립트를 실행 가능하게 만드는 것을 고려하십시오.아니요스크립트를 실행할 때 명령줄에 명시적 해석기를 지정합니다(이렇게 하면 해당 #!줄이 적용됩니다).

또한보십시오:

관련 정보