ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [따배쉘] 7.Input & Output
    Linux 2022. 9. 5. 04:15

    ---

    https://youtu.be/jzcE4vCg1sU

     

    ---

    프로그램을 하다보면 메시지를 출력해야하고 입력을 받아야 하는 경우가 있다

    그때 사용하는 Input처리 Output 처리방법에 대한 강의

     

    ---

    1.echo

    2.read

    3.printf

     

    ---

    prints text -> standard output

    화면에다 문자열을 출력

     

    ---

    -n는 마지막 자동으로 줄바꿔주는 개행문자를 취소하세요

    ▽마지막 자동으로 줄바꿔주는애가 항상 들어가는구나!

     

    ---

    -e는 escapes character를 활성화 시켜주고 싶을 때

     

    \a는 알람소리

     

    ---

    예)echo 자동으로 줄바꿈이 일어난다

    그거 취소

     

    ---

    이스케이프 문자 해석해줘

     

    \a저거 삑 하고 울려

     

    ---

    echo는 변수 내용 출력할 때도 쓴다  ▽뭐 들어있나 볼 때겠지

     

    ---

    echo로 출력했으면

    read로 입력받을 수 있어

    입력을 받으려면 어디다 가 필요하겠지 변수명을 넣어준다

    변수명이 n개면 n개 입력받는다

    -t10은 10초까지 입력 대기 하는 것

    -n8하면 앞에 8글자만 받아

    -s 글자 안찍히게 하는 것, 비밀번호 입력받을 때 쓴다

     

    ---

    아까 썼던 score인데 또 쓰면 overwrite된다

    아무것도 안일어나는데 score변수에 들어갈 데이터를 기다리고 있는 것

     

    ---

    2개는 블랭크 기준

     

    2개 하고 3개 넣으면?

    첫번째 블랭크 이후는 다 두번째 변수로 본다

    ▽변수 개수 - 1 반복하는 코드를 짰나

     

    ---

    다섯글자 받자마자 끝나

     

    ---

    echo read 조합

    이러면 변수에 저장하는 것, 있어보인다

    echo와 read만 있으면 쉘 프로그래밍에서 대화식 처리를 만들 수 있다

     

    ---

    printf

    얜 포맷을 지원해준다, C언어랑 비슷. 출력을 내가 연출하고 싶을 때

    10글자 칸에 맞춰서 출력해줘

    오른쪽 정렬 해줘

    소숫점 이하

    ..

     

    ---

    %5d 하면 5칸에 맞춰 숫자 출력

     

    ---

    printf는 기본적으로 이스케이프 문자를 해석한다

     

    ---

    기본 줄바꿈이 이뤄지지 않아!!

     

    ---

    ▽%해놓고 들어갈 데이터를 뒤에 집어넣는다

     

    ---

    변수 출력

     

    ---

    문자열 정렬 방향을 정할 수 있다

    %10s : 10글자 칸에 맞춰서 출력해주세요

    %10.2f : 소수점 둘째자리까지

    마지막 | 넣어도 되고 안 넣어도 되고

    대시 넣으면 왼쪽 정렬

     

    ---

    예제)

    이번엔 cat > 이 아니라 vi 에디터로 하신다

    shift + insert키로 붙여넣기 하신다

     

    파워포인트에서 복사해왔는데 파워포인트 " 는 저기 " 랑 달라서 바꿔줌

     

    chmod +x input-exam.sh해주고

    ./input-exam.sh

    아까랑 똑같은건데 대화식이 됐다

     

    ---

    짜보세요

     

    ---

    댓글에 답

    #!/bin/bash today=`date +%y%m%d-%H%M%S` input_dirname () { echo -n "디렉토리 이름을 입력해 주세요 : " read dirname } output_dirname () { ls $dirname > /tmp/$today } input_dirname while [ ! -d $dirname ]; do printf "없는 디렉토리입니다. 다시 입력해주세요\n\n" input_dirname done output_dirname

Designed by Tistory.