Development Tip

bash for 루프에서 명령 줄 인수 범위를 사용하면 인수가 포함 된 대괄호가 인쇄됩니다.

yourdevel 2021. 1. 9. 11:01
반응형

bash for 루프에서 명령 줄 인수 범위를 사용하면 인수가 포함 된 대괄호가 인쇄됩니다.


아마도 절름발이 질문 일 것입니다. 하지만 명령 줄 [bash script]에서 3 개의 인수를 받고 있습니다. 그런 다음 for 루프에서 사용하려고합니다.

for i in {$1..$2}
    do action1
done

경우 비록이 작동하지 않는 것 $1입니다 "0"하고 $2있다 2가 인쇄 {0..2}' and calls한 번만 action1`. 다양한 예를 참조했는데 이것이 올바른 사용법 인 것 같습니다. 누군가 여기서 수정해야 할 사항을 알려주시겠습니까?

미리 감사드립니다.


어때 :

for i in $(eval echo {$1..$2}); do echo $i; done

다음을 사용하여 입력을 슬라이스 수 ${@:3}또는 ${@:3:8}그 위에 다음 루프를하고

예 : 3부터 시작하는 인수를 인쇄하려면

for i in ${@:3} ; do echo $i; done

또는 3에서 시작하는 8 개의 인수를 인쇄하려면 (따라서 인수 3에서 10까지)

for i in ${@:3:8} ; do echo $i; done

$ @ 변수를 사용 하시겠습니까?

for i in $@
do
    echo $i
done

첫 번째 및 두 번째 인수를 사용하려면

for i in $1 $2 

$ 1 및 $ 2가 정수이고 범위를 생성하려는 경우 C for 루프 구문 (bash)을 사용합니다.

for ((i=$1;i<=$2;i++))
do
...
done

비슷한 문제가있었습니다. 중괄호 '{}'내에서 $ 1을 역 참조하는 것이 문제라고 생각합니다. 다음 대안은 나를 위해 일했습니다 ..

#!/bin/bash
for ((i=$1;i<=$2;i++))
do
   ...
done

도움이되기를 바랍니다.


#/bin/bash
for i
do
  echo Value: $i
done

이것은 스크립트 파일에 주어진 모든 인수를 반복합니다. 루프 변수 i 뒤에는 "do"또는 다른 어떤 것도 없습니다.

참조 URL : https://stackoverflow.com/questions/5691098/using-command-line-argument-range-in-bash-for-loop-prints-brackets-containing-th

반응형