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를 사용하고 있지만 이는 로 표현될 수도 있습니다 .