$1 - 1 사이클로 for 루프를 만드는 방법

$1 - 1 사이클로 for 루프를 만드는 방법

버블 정렬 알고리즘을 만들기 위해 'sed'를 사용하는 sh 스크립트를 만들려고 합니다.

for 루프를 만드는 방법에 어려움을 겪고 있습니다.

for n in $1
do
   echo $n
done

순환을 만들기 위해 for 루프의 본문을 어떻게 변경할 수 있습니까 n-1? 나는 이것을 시도했지만 $1-1작동하지 않습니다. 문자열의 일부와 - 1을 인쇄합니다.

답변1

n-1주기이는 마지막 항목을 고려하지 않아야 함을 의미합니다.

다음 접근 방식을 사용하십시오(입력 인수가 항상 공백으로 구분된 하위 문자열의 문자열이라고 가정).

s=$1

for n in ${s:0:-2}
do 
    echo $n 
done

${s:0:-2}- 마지막 항목을 제외한 모든 항목을 포함하는 항목 조각

    ^  ^
    |  | 
  from to

답변2

사용 for i in "$@" ; do echo $i ; done

$1을 인용할 필요도 없고 그럴 필요도 없습니다.

편집 : 제가 오해했습니다. $1-1을 인쇄하려면 echo $(( $i-1 )) i-1번 반복하려는 경우 다음을 수정하십시오.

for ((i=1; i<=3; i++))
{
  echo $x
}

'bubblesort' 스크립트 전체를 게시하거나 질문을 명확히 하십시오.

관련 정보