Linux에서 스크립트를 작성해야 합니다. 각 반복마다 다른 매개변수를 사용하여 함수를 여러 번 실행하고 싶습니다.
다음 코드를 작성합니다.
#!/bin/bash
bash << _EOF_
for ((i=0; i<=20;i++));do
MYFUNCTION -X
done
_EOF_
여기서 -X는 정수여야 합니다. 대신 글쓰기를 시도했지만 $i
성공하지 못했습니다.
답변1
잃다트레독그것은 잘 작동합니다 :
#!/bin/bash
for ((i=0; i<=20;i++));do
MYFUNCTION "-$i"
done
또는 다음을 사용할 수 있습니다.작은따옴표 구분 기호, 이를 $i
방지 합니다.설정되지 않은 외부 컨텍스트에서 삽입:
#!/bin/bash
bash << '_EOF_'
for ((i=0; i<=20;i++));do
MYFUNCTION "-$i"
done
_EOF_
그러나 새로 시작된 bash 프로세스에서 또 다른 bash를 시작할 이유가 거의 없습니다.
답변2
이 경우 heredoc을 사용할 이유가 없습니다.
다음 코드는 bash 버전 4.2.26에서 제대로 실행됩니다.
#!/bin/bash
function f()
{
echo $1;
};
for i in {1..20}; # This works for a range of integers, but for unrelated values, you can use "i in x y z" format
do
f $i;
done;
여전히 문제가 있는 경우 bash 버전과 테스트 중인 전체 코드를 제공하세요.