리눅스 질문입니다
글쓴이: .. / 작성시간: 목, 2019/05/09 - 7:39오후
쉘프로그래밍 하는 중인데요
배열을 이용해 for문을 돌렸습니다.
for i in {0..5}
do
echo " ${arr[i]} | ${arr2[i]}"
done
그런데 배열에 있는 arr[0], arr[1]... 이 모두 글자수가 달라서 결과가 뒤죽박죽이더라고요.
c언어 %nd n자리로 맞추는것처럼
리눅스에서 문자열을 일정 칸수를 지정해서 남은 뒷부분은 빈칸으로 채워
총 칸수가 맞게 조정하는 법은 없을까요?
File attachments:
첨부 | 파일 크기 |
---|---|
![]() | 26.15 KB |
Forums:
리눅스에 대한 질문이 아니고 bash 에 대한
리눅스에 대한 질문이 아니고 bash 에 대한 질문이네요.
답변 감사합니다!! 추가질문 해도될까요?
몇 시간 동안 고민하던게 해결이 됐어요!! 감사합니다ㅎㅎ
추가 질문 인데요, 그러면 [hello ] [ world] 대신에 |aaaa | |bbbb |를 출력하고 싶으면
(arr[0]=aaaa, arr[1]=bbbb 라고 할때)
bash -c 'printf "|%*s| |%*s|\n" -5 ${arr[0]} -5 ${arr[1]}'
라고 하면 되지않을까요??
그런데 실행했더니 왜 배열을 문자로 인식을 안하고
|-5 | ||
이렇게 출력이 될까요?? 제가 잘못한 부분 잡아주시면 정말정말정말 감사하겠습니다ㅜㅜ!!!
$ bash -c 'str=(hello world);
알려주신대로
알려주신대로
bash -c printf '"|%*s| |%*s|\n" -5 "${arr[0]}" -5 "${arr[1]}"'로도 해보고
bash -c 'str=(${arr[0]} ${arr[1]}); printf "[%-10s] [%10s]\n" ${str[0]} ${str[1]}' 로도 해봤는데 계속 그냥 공백으로 나오네요.ㅜㅜ
[ ][ ] 이렇게요..아, 당연히 배열 arr에 문자저장은 했어요
혹시 printf는 문자열을 저장한 배열을 읽지 못하나요??
bash -c 로 실행을 했으니 당연히 arr 은
bash -c 로 실행을 했으니 당연히 arr 은 비어 있겠죠.
코드를 적으시려면 전체 코드를 적으세요. arr에 님은 저장을 했다고 생각하겠지만, 위의 코드에서는 arr은 저장되지 않았습니다.
의 차이가 뭔지 곰곰히 생각해 보세요.
댓글 달기