ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [따배쉘] 6.Positional Parameters
    Linux 2022. 9. 5. 01:44

    ---

    https://youtu.be/Y88jOdaBs4Q

     

    ---

    위치 매개변수, 커맨드라인에서 입력하는 argument를 처리해주는 방법에 대해

     

    ---

    변수니까

    변수에는 데이터를 담는거니까. 데이터가 있다. 상수가 있다는 말

     

    ▽프로그래밍 해보면 무슨말인지 쉽다, 함수안에서 매개변수로 전달받은걸 쓰잖아

     

    ---

    예를 들어

    cp라는 명령어는 binary파일이고

    첫번째 argument, 두번째 argument가 변수에 저장돼서 프로그램으로 전달된다

    cp 커맨드에게 원본 파일 대상 파일 둘다 전달 해줘야 cp 커맨드가 원본 파일을 찾아서 대상파일로 복사작업을 해주는 것이니까, 저 argument들이 argument데이터가 되고 변수에 저장돼서 프로그램으로 전달된다

     

    ---

    변수에 저장되는게, 변수는 $가 먼저 붙고

    이렇게

     

    모든 커맨드라인에서 실행하는건

    포지셔널 파라미터, 위치에 관련된 매개변수로 저장돼서 프로그램으로 패싱된다

     

    ---

    이렇게 하고 싶으면

    기본적으로 쉘스크립트는

    이렇게 하면 된다. 10번째부턴 브레이스를 해줘야해

     

    ---

    $#는 argument의 개수,

    $0 $1 $2면

    2개야

     

    $#에 숫자 2가 들어가 있어

     

    ---

    또 file1 file2 이 argument 전체가

    $@, $* 이 변수 안에 들어가

     

    ---

    위치매개변수 외에도 특별히 쉘이 정해놓고 사용하는 변수들

     

    시스템에 로그인을 하고 ps -f하면

    로그인하자마자 -bash라는 쉘이 실행된다

    이 쉘의 PID는 3818

    3818번을 갖고 login shell이 실행되는데

    $$하면 이렇게 저장돼 있어

     

    그럼 kill -9 $$하면?

    로그인 쉘이 바로 종료된다

    히스토리까지 남겨지지 않고 로그아웃 kill

     

    ---

    $PWD : 현재 작업디렉토리

     

    ---

    $PPID

    Parents Process ID

     

    ---

    예)

    $PATH에 해놓고

    컨트롤 D

    이걸 또 vi에디터로 보네 왜 첨부터 vi에서 안하는지는 잘 모르겠어

    실행해보면

    $0 풀네임이고

    $@ 그대로 나열이네

     

    $#를 진짜 많이 사용한대

     

    ---

    방금건 이해하려고 한 예였고

    실제로 어떻게 활용하는지 예

    ▽이번엔 또 cat > 하고 vi로 안보고 cat으로 보네 별 의미 없나봐

    실행커미션 넣고

    du -sh 디렉토리 : 서머라이즈 휴먼 리드어블 사이즈

    이렇게 쓴다

     

    ---

    포지셔널 파라미터를 쓰니까 그때그때 내가 필요한 내용들을 집어넣어서 원하는걸 할 수 있다

     

    ---

    시스템을 관리하는 shell script작성

    루트 사용자로 실행할 수 있는 애플리케이션이 있는데, 계정을 생성해주는 스크립트를 만들거야

    이런식으로 하면 되겠지??

     

    특정 디렉토리 백업하려면

    이런식으로

    하튼 활용할 수 있는 방법 엄청 많다

     

    ---

    해보기

     

    ---

    댓글 답

    homework1.sh

    #!/bin/bash

    #Usage: homework1.sh directory_name

    ls -l $1 > /tmp/$(date +%Y%m%d).txt

     

    ---

    나중에 if문 이용해서 argument 개수 점검할 때 $# 많이 쓴다

Designed by Tistory.