
변수 할당에 있어서 = 좌우에 공백을 허용하지 않는다! '아니! 왜?' 다른 언어로 programming 하는 것에 비교했을 때 납득하기 힘든 제약입니다. 처음에는 당황스러웠지만 몇 분 후에 이유를 깨닫게 되죠. 변수 x 에 trauma 를 할당하기 위해 터미널에서 x = trauma 를 입력해 봅니다. ( = 주변에 공백을 줍니다.) 흠! 공백으로 인해 shell 이 x 라는 command 를 찾는군요. 자, 이번에는 공백없이 grep 이라는 변수를 만들어 보겠습니다. 잘 되는군요. 그런데, 만약 = 주변에 공백을 준다면? 하하! grep 명령으로 aaa 파일에서 = 가 있는 행을 찾아주네요. 터미널 입력에서 공백이 허용되면 = 는 command 의 인자인지 할당기호인지 구별할 수가 없겠죠. 한편, p..

'나는 if 뒤에 안전하게 test, [ 만 쓸거야!' 다른 모든 사람도 이런 마음으로 script 를 작성한다면 참 좋을 텐데... 다른 언어들에서도 side effect 를 이용하는 code 를 보게 되듯이 bash script 에서도 마찬가지입니다. 다른 이들의 code 를 보고 당황하지 않으려면 종종 등장하는 것들은 알고 있을 필요가 있을 겁니다. 이미 앞선 글들을 통해 기본은 if 는 일반적으로 command 또는 function 이 따라 온다. 임을 밝혔습니다. (물론 그중에서도 [ 혹은 test 가 가장 흔한 경우일 겁니다.) 그럼 '일반적' 이지 않은 것은 뭘까요? command 와 function 이 아님에도 if 뒤에서 비교적 자주 보게 되는 것들은 무엇일까요? 앞에서 소개한 바 있는 ..

지난 글의 출발은 짧은 script #!/bin/bash if python3 then echo "hahaha" else echo "..." fi 이었습니다. 이제 if 다음의 python3 가 이상하지 않습니다. 왜냐하면 if 일반적으로 다음에 command 가 따라온다. 을 알기 때문이지요. python3 는 command 이니 문제가 없습니다. ( ls, echo 등등을 python3 위치에 넣고 실행해 보세요!) 그럼 이제 python3 는 참이냐? 거짓이냐? 는 의문을 가질 수 있습니다. But 다른 언어들과는 다르게 shell 에서 if 는 참, 거짓이 아니라 뒤따르는 command 의 exit code 를 바탕으로 분기 합니다. 그리고 command 가 정상 종료했을 때, 즉 exit code..
- Total
- Today
- Yesterday
- RUBY
- segment tree
- Shell Programming
- max flow
- python3
- shell
- fenwick tree
- JavaScript
- 다익스트라
- script
- number theory
- Aho-Corasick
- dynamic programming
- stack
- nearest common ancestor
- 정수론
- math font
- Vim
- javascript array
- lazy propagation
- persistent segment tree
- Dijkstra
- bash script
- 세그먼트 트리
- bash
- map
- C++ big number
- 백준
- Reference
- BOJ
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |