bash에서 별표 기호를 사용하여 문자를 반복적으로 인쇄합니다.

bash에서 별표 기호를 사용하여 문자를 반복적으로 인쇄합니다.
print '*' * 80

이 Python 코드 조각은 80개의 별표를 인쇄합니다. 나는 종종 로그 파일에서 구분 기호로 사용합니다.

연산자 오버로딩을 사용하여 bash 스크립트에서 이 작업을 어떻게 수행할 수 있나요?

답변1

쉘( ksh, zsh, bash)에서는 다음을 수행할 수 있습니다.

stars=$(printf '%*s' 80 '')
echo "${stars// /*}"

bash다음을 수행하도록 선택할 수 있습니다 .

printf -v stars '%*s' 80 ''
echo "${stars// /*}"

설명: 매개변수를 통해 제공된 길이의 문자열을 생성하는 printf형식 문자열을 사용합니다 . %*s따라서 첫 번째 매개변수( 80)는 길이를 지정하고, 두 번째 매개변수는 ''효과적으로 인쇄할 문자열(빈 문자열)을 지정하지만 정의된 너비에 공백이 추가됩니다. printf "%80s" ''가변 인수일 수 있음을 분명히 하기 위해 매개변수화된 버전의 length를 사용하고 있지만 이는 로 표현될 수도 있습니다 .

관련 정보