다음 오류가 발생했습니다: -bash: 1: for 루프를 실행하는 동안 명령을 찾을 수 없습니다.

다음 오류가 발생했습니다: -bash: 1: for 루프를 실행하는 동안 명령을 찾을 수 없습니다.

다음 명령을 실행하려고 하면:

for x in $(seq 10); do echo $($x >> c.txt); done

다음 오류가 발생합니다.

-bash: 1: command not found

답변1

이것을 확인한 후 쉘이 하는 일은 echo $($x >> c.txt)명령 대체를 먼저 처리하는 것입니다 $($x >> c.txt). 이는 명령의 출력으로 대체됩니다 $x >> c.txt. 이것은 루프의 첫 번째 반복 $x인데 1해당 명령이 없으므로 오류가 발생합니다. (1~10 범위의 정수에 해당하는 명령이 없으면 루프를 반복할 때마다 오류가 발생합니다. 출력 문제 잘릴 수 있음)

다음과 같은 작업을 수행하고 싶을 수도 있습니다.

for x in $(seq 10); do
   echo "$x" >>c.txt
done

(명령 대체 없이) 또는 그냥

seq 10 >>c.txt

이것은 동일한 효과를 갖습니다.

답변2

루프를 처음 실행할 때 xwill은 이므로 1실행할 때 echo $(1 >> c.txt)쉘은 실행을 시도 1하지만 찾지 못합니다.

실제로 하고 싶은 일을 추가하면 무엇을 바꿔야 할지 지적해 드릴 수 있습니다.

답변3

귀하의 bash 정의가 스크립트에 올바르게 정의되지 않은 것 같습니다.

산출:

-bash: 1: 명령을 찾을 수 없습니다.

일반적으로 이는 bash 정의가 제대로 작성되지 않았음을 의미합니다. 스크립트의 첫 번째 줄이 다음과 같이 정의되어 있는지 확인하세요.

#!/bin/bash

Bash가 다른 위치에 있는 경우 다음을 통해 찾을 수도 있습니다.

which bash

관련 정보