-
[따배쉘] 6.Positional ParametersLinux 2022. 9. 5. 01:44
옮
---
---
위치 매개변수, 커맨드라인에서 입력하는 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작성
루트 사용자로 실행할 수 있는 애플리케이션이 있는데, 계정을 생성해주는 스크립트를 만들거야
이런식으로 하면 되겠지??
특정 디렉토리 백업하려면
이런식으로
하튼 활용할 수 있는 방법 엄청 많다
---
해보기
---
댓글 답
#!/bin/bash
#Usage: homework1.sh directory_name
ls -l $1 > /tmp/$(date +%Y%m%d).txt
---
나중에 if문 이용해서 argument 개수 점검할 때 $# 많이 쓴다
'Linux' 카테고리의 다른 글
[따배쉘] 7.Input & Output (0) 2022.09.05 [따배리] 4.Wildcard, 다중 명령어 처리, 텍스트 파일 내용 보기 (0) 2022.09.03 [따배리] 3.vi editor (0) 2022.09.02 [따배리] 2.man, ls, mkdir, rmdir, cd, cp, mv, rm (0) 2022.08.29 [따배리] 1.디렉토리들 (0) 2022.08.28