
버블 정렬 알고리즘을 만들기 위해 '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' 스크립트 전체를 게시하거나 질문을 명확히 하십시오.