전체 글 (351) 썸네일형 리스트형 [리눅스] 34. 문자열과 수 1. 매개변수 확장 (1) 기본 매개변수 $ a="foo" $ echo "$a_file" 이대로 실행하면, 아무런 결과도 없을 것디ㅏ. 쉘이 a가 아닌 a_file을 변수명으로 확장했기 때문이다. 이를 해결하기 위해서는 중괄호를 사용하면 해결할 수 있다. $ echo "${a}_file" foo_file (2) 빈 변수를 관리하기 위한 확장 여러 매개변수 확장들이 존재하지 않거나 빈 변수를 처리할 수 있다. 이러한 확장들은 위치 매개변수의 부재를 제어하고 매개변수에 기본값을 할당하기 쉽게 한다. " ${parameter:-word} " parameter가 설정되지 않거나 비어있다면, 이 확장 결과는 word의 값이 된다. 만약 비어있지 않다면 parameter의 값이 된다. $ foo= $ echo .. [리눅스] 33. 흐름 제어: for 루프 1. for : 전통적인 쉘 형식 for 명령어의 원 문법은 다음과 같다. " for variable [in words]; do commands done " variable는 루프 수행 중에 증가되는 변수면이고, words는 선택적인 variable에 순차적으로 할당되는 항목의 목록이다. commands는 각 반복마다 실행되는 명령들이다. $ for i in A B C D; do echo $i; done A B C D $ for i in {A..D}; do echo $i; done A B C D 위는 ABCD 목록을 순차적으로 출력한 것이다. 각 루프가 실행될 때마다 변수 i에 ABCD가 할당되고 echo명령어를 통해서 각 반복마다 echo 명령어가 실행되게 되는 로직이다. [BOJ] 14719. 빗물 https://www.acmicpc.net/problem/14719 14719번: 빗물 첫 번째 줄에는 2차원 세계의 세로 길이 H과 2차원 세계의 가로 길이 W가 주어진다. (1 ≤ H, W ≤ 500) 두 번째 줄에는 블록이 쌓인 높이를 의미하는 0이상 H이하의 정수가 2차원 세계의 맨 왼쪽 위치 www.acmicpc.net 1. 해결방법 """ 1. 아이디어 - 세로 H와 가로 W를 입력받아 2차원 배열을 만든다. - 특정 위치를 기준으로 양 옆에 자신보다 작은 높이의 블록이 있다면 물이 고일 수 없다. - 특정 위치에서 왼쪽에서 가장 큰 블록과 오른쪽에서 가장 큰 블록중에서 비교한다. - 왼쪽, 오른쪽에서 가장 큰 블록을 비교해서 둘 중 작은 블록을 구한다. - 만약 구한 블록 값이 해당 위치의 .. [BOJ] 17144. 미세먼지 안녕! https://www.acmicpc.net/problem/17144 17144번: 미세먼지 안녕! 미세먼지를 제거하기 위해 구사과는 공기청정기를 설치하려고 한다. 공기청정기의 성능을 테스트하기 위해 구사과는 집을 크기가 R×C인 격자판으로 나타냈고, 1×1 크기의 칸으로 나눴다. 구사 www.acmicpc.net 1. 해결방법 """ 1. 아이디어 - 공기 청정기의 위치를 확인하여 위쪽에 해당하는 위치를 front에 할당하고, 아래쪽에 위치는 위쪽 위치에 1을 더한 값을 back에 할당. - 입력받은 T초 만큼 확산 함수(spread())를 실행, 공기청정기 함수 실행 -> 위쪽 (air_up()), 아래쪽 (air_down()) - R * C 크기의 2치원 배열 graph를 생성 - 반복문을 돌아서 그.. [리눅스] 32. 위치 매개변수 앞장에서 만든 프로그램에서 한 가지 놓치고 있는 기능은 커맨드라인 옵션과 인자를 허용하고 처리하는 능력이다. 이번 장에서는 커맨드라인의 내용에 접근하는 쉘 기능을 알아볼 것이다. 1. 커맨드라인 항목 접근 쉘은 위치 매개변수라는 변수의 집합을 제공한다. 그것은 커맨드라인 명령의 개별 요소들을 가지고 있으며 변수들은 0부터 9까지 이름 붙인다. 아래와 같은 방식으로 나타낼 수 있다. # posit-param \$0 = $0 \$1 = $1 \$2 = $2 . . . \$9 = $9 커맨드라인 인자 없이 위의 스크립트를 실행하면 다음과 같다. $ posit-param $0 = /home/me/bin/posit-param $1 = $2 = . . . $9 = 인자가 없는 경우조차도 $0은 항상 커맨드라인의 .. [리눅스] 31. case 분기 앞 장에서 선택된 항목을 식별하기 위해서 if 명령어를 연속으로 사용하였다. if 명령어와 유사하게 선택된 항목 다중 선택을 위한 프름 제어 기법이 여러 존재한다. 이번 장에서는 case 명령어에 대해 볼 것이다. 1. case (1) case 문법 " case word in [pattern [| pattern] ...) commands ;;] ... esac" read -p "Enter selection [0-3] >" if [[ $REPLY =~ ^[0-3]$ ]]; then if [[ $REPLY == 0 ]]; then pass fi if [[ $REPLY == 1 ]]; then pass fi fi 위는 if 명령어를 사용해서 케이스를 분류해놓은 것이다. if 명령어를 case 명령어의 형태로.. [Git] git init 명령어에서 Using 'master' as the name for the initial branch. 에러가 나올 때. 본인은 AWS ec2 우분투 환경에서 배포를 하던 도중 git init 명령어를 입력했는데, ubuntu@ip-172-31-18-141:/docker_projects$ docker exec python bash -c "cd /python/src/ ; git init" hint: Using 'master' as the name for the initial branch. This default branch name hint: is subject to change. To configure the initial branch name to use in all hint: of your new repositories, which will suppress this warning, call: hint: hint: git.. [리눅스] 30. 문제 해결 스크립트들을 좀 더 복잡하게 만들어, 실수를 했을 때나 프로그램이 원치 않는 동작을 할때 무슨 일이 벌어지는지 확인해야 하는데 이러한 오류들과 문제를 찾는 방법들이 몇몇 존재한다. 1. 구문 오류 일반적인 오류 분류 중 하나는 구문적인 것이다. 구문 오류에는 쉘 구문 요소의 잘못된 타이핑을 포함한다. 대부분 이러한 오류는 스크립트를 실행하는 경우 쉘에 혼란을 일으킬 수 있다. (1) 따옴표 누락 스크립트에서 따옴표를 제거하면 두 가지의 오류가 발생한다. 하나는 프로그램에서 따옴표가 누락된 곳이 아닌 그 이후의 행 번호를 보고한다. bash는 나머지 마침 따옴표를 찾을 때까지 계속 다음 따옴표를 찾게된다. 마지막은 그 다음 마침 따옴표를 다른 행에서 찾게 되면 bash는 혼란스러워하고, 문법이 깨져버린다... 이전 1 ··· 28 29 30 31 32 33 34 ··· 44 다음