-
[SW 정글 추석 특집] Missing Semester 2일차기타/SW 사관학교 정글 2021. 9. 21. 13:55
오늘은 Missing Semester 강좌 2일차로 셸 툴과 스크립팅에 대해 배웠다.
Missing Semester를 계속들을지 고민을 해봤는데 단기적으로든, 장기적으로든 나에게 도움이 될 것같다는 생각에 일단은 끝까지 들어보려고 한다.
<오늘 배운 내용>
1. space bar(띄어쓰기)는 shell에서 치명적이다.
우리가 IDE환경에서는 흔히 코딩 스타일을 맞추기 위해 연산자 사이에 띄어쓰기를 한다.
하지만 shell에서는 띄어쓰기는 서로 다른 arguments로 인식하여 컴퓨터가 같은 argument로 인식하지 못한다.
그에 대한 실습은 아래의 사진과 같다.
foo = bar로 입력 시, 컴퓨터는 foo라는 프로그램을 실행하는데 argument1이 '='이고 argument2가 'bar'이라고 인식하는 것이다.
2. double quotes(" ")와 single quotes(' ')의 다른점
이 둘의 다른점은 그냥 단순히 문자열을 출력하고자 할 때에는 알지 못한다.
하지만, 변수가 가지고 있는 value를 출력할 때는 얘기가 달라진다.
위에서 보면 foo라는 변수가 가지고 있는 value를 출력하고자 한다면 $foo라고 입력을 해준다.
그러면 doulbe quotes와 single quotes로 감싸서 변수를 문자열에 포함시켜서 출력을 해보면 어떨까?
single quotes로 감싼 문자열은 변수를 인식하지 못하고 $foo 그대로 출력하는 것을 볼 수 있다.
3. $의 기능
$는 위에서 본 것처럼 변수명 앞에 붙이면 변수가 가지고 있는 value를 가져오는 역할도 하지만 다른 역할도 한다.
- $0 - 스크립트 이름
- $1 ~ $9 - 스크립트의 인자들. $1부터 첫번째 인자.
- $@ - 모든 인자들
- $# - 인자의 수
- $? - 이전 명령을 반환하는 코드
- $$ - 현재 스크립트에 대한 프로세스 식별 번호 (PID)
- !! - 인수를 포함하여 마지막 명령 전체를 포함합니다. 일반적으로는 사용 권한이 누락되어 실패할 때 사용한다. sudo를 함께 써서 실패한 명령을 빠르게 다시 실행할 수 있다.
- $_ - 마지막 명령에 나온 마지막 인수를 의미한다. 대화형 셸에 있는 경우 Esc를 입력한 후 .을 입력해 이 값을 신속하게 얻을 수 있다.
'기타 > SW 사관학교 정글' 카테고리의 다른 글
[SW 정글 52일차] Proxy (0) 2021.09.22 [SW 정글 51일차] MIME 타입, CGI, datagram vs stream (0) 2021.09.22 [SW 정글 50일차] stdout 와 STDOUT_FILENO (feat. File Descriptor) (0) 2021.09.21 [SW 정글 49일차] Tiny 웹 서버 구현하기 (1) 2021.09.20 [SW 정글 추석 특집] Missing Semester 1일차 (0) 2021.09.19