728x90

전체 글 331

(shell script) 문자열 패턴 비교

문자열 패턴 비교 패턴 비교는 일종의 문자열을 연산하는 것으로 특정한 pattern을 놓고 변수의 문자열 값이 일부분이라도 이 패턴과 일치하는지 검사할 때 쓰인다. 이 패턴에는 와일드카드 문자 ( *, ?, [ ] 를 포함한 문자 세트)를 포함해도 된다. ${#var} 변수 var가 가지는 문자열의 길이를 구한다. ${var:-word} 1. 변수 var의 값이 null이 아니면 : var의 값을 반환, var의 값은 변하지 않는다. 2. 변수 var의 값이 null이면 : word의 값을 반환, var의 값은 변하지 않는다. ${var:=word} 1. 변수 var의 값이 null이 아니면 : var의 값을 반환, var의 값은 변하지 않는다. 2. 변수 var의 값이 null이면 : word의 값을 ..

쉘 배열문이란?

쉘 배열문 배열 생성 / 추가 BASH #!/bin/bash # 배열의 크기 지정없이 배열 변수 선언 # 굳이 'declare -a' 명령으로 선언하지 않아도 바로 배열 변수 사용 가능함 declare -a array arr=("test1" "test2" "test3") # 배열 선언 및 지정 echo ${arr[0]} # test1 # 기존 배열에 1개의 배열 값 추가 3가지 방법 arr[3]="test4" arr+=("test5") arr[${#arr[@]}]="test6" # 배열 길이를 인덱스로 사용해 push echo ${arr[@]} # arr의 모든 데이터 출력 echo ${arr[*]} # arr의 모든 데이터 출력 echo ${#arr[@]} # arr 배열 길이 출력 echo ${arr..

쉘 조건문 - if문

쉘 조건문 if 문 배쉬의 if문의 특이한 점은 fi 와 대괄호[ ] 이다. 여타 언어와 달리 중괄호를 안쓰기 떄문에 fi로 if문의 끝을 알려주어야 하며, 주의해야할 점은 if문 뒤에 나오는 대괄호 [ ] 와 조건식 사이에는 반드시 공백이 존재해야 한다. if [ 값1 조건식 값2 ] then 수행1 else 수행2 fi # 가독성 좋기 위해 then을 if [] 와 붙여쓰려면 반드시 세미콜론 ; 을 써야한다. if [ 값1 조건식 값2 ]; then 수행1 else 수행2 fi 비교 연산 문자1 = 문자2 # 문자1 과 문자2가 일치 (sql같이 = 하나만 써도 일치로 인식) 문자1 == 문자2 # 문자1 과 문자2가 일치 문자1 != 문자2 # 문자1 과 문자2가 일치하지 않음 -z 문자 # 문자가..

AWS 요금 폭탄 피하기

1 인스턴스 중단하여 요금 발생 줄이기 2019년 12월. AWS EC2 프리티어 1년간 사용하다가 사용기간이 도달했을때 였어요. AWS 사용이 처음이고 학습용도 였기에, 사용하던 볼륨으로 스냅샷을 생성하여 보관하고 인스턴스를 중단해 요금이 발생하지 않게 나름대로 구글링하며 조치해두었지요. 2 스냅샷 이용해서 복구, 인스턴스 시작하기 2020년 3월. 백업해두었던 볼륨 스냅샷을 이용해서 다시 인스턴스를 시작하는 방법을 알아보고 인스턴스를 다시 올렸어요. 오랫만에 들어가보니 EC2 도 많이 진화된 모습이였어요. 백업으로 복구하기, 인스턴스 재기동! 나또한 한 단계 레벨업된 느낌!! 그런데... "New EC2 Experience" 3 $650.54 요금폭탄 며칠후, 띠링 ~ 카드사의 해외 결제 승인 알림 ..

AWS 2023.01.31

expr 연산자 예제

expr 연산자 expr는 역따옴표를 반드시 감싸준다. 역따옴표 대신 $(( )) 해줘도 동작은 한다. expr을 사용할 때 피연산자와 연산자 사이에 공백이 필요하다. 산술 연산할때 우선순위를 지정하기위해 괄호를 사용하려면 \처리를 해줘야 한다. 곱셈 문자 *는 \처리를 해주어야 한다. BASH #!/bin/bash number1=10 number2=20 plus=`expr $number1 + $number2` minus=`expr $number1 - $number2` mul=`expr $number1 \* $number2` # 곱셈에는 \* 를 이용한다. div=`expr $number1 / $number2` rem=`expr $number1 % $number2` echo "plus: ${plus}" ..

(shell script)매개 변수

매개 변수 프로그램에서도 실행할때 인자를 주듯 쉘 스크립트도 역시 그렇게 할 수 있다. 실행한 스크립트 이름은 ${0}, 그 이후는 전달받은 인자 값들이다(${1}, ${2}, ...) 종류 설명 $0 실행된 셸 스크립트명 $1 스크립트에 넘겨진 첫 번째 아규먼트 $2 스크립트에 넘겨진 두 번째 아규먼트 $3 S4 등등...쭈욱 이후 $숫자 그 이후 해당되는 아규먼트 $# 아규먼트 개수 $* 스크립트에 전달된 인자 전체를 하나의 변수에 저장하면 IFS 변수의 첫 번째 문자로 구분 $@ $*와 동일한데 다른 점은 IFS 환경 변수를 사용하지 않는다는 점. $! 실행을 위해 백그라운드로 보내진 마지막 프로그램 프로세스 번호 $$ 셸 스크립트의 PID $? 실행한 뒤의 반환 값 (백그라운드로 실행된 것 제외)..

쉘스크립트(shell script) 예제

쉘 변수 선언 변수의 타입에는 로컬변수와 전역변수, 환경변수, 예약변수, 매개변수 등 다양하게 존재한다. 변수는 대, 소문자를 구별한다. 변수의 이름은 숫자를 포함할 수 있지만, 숫자로 시작할 수 없다. 변수에는 모든 값을 문자열로 저장된다. 변수에는 자료형을 기입하지 않는다. (int number, char names[10]), 즉 아무런 값을 다 넣을 수 있다. 값을 사용할 때는 변수명 앞에 특수문자 "$"를 사용한다. (Ex. echo ${data}) 값을 대입(삽입)할 때는 특수문자 "$"를 사용하지 않는다. (Ex. data=mac) 변수를 생성할 때는 "=" 대입문자 앞뒤로 공백이 없어야 한다. (Ex. data="abcd") BASH #!/usr/bin/bash name="inpa" # 변수..

정규 표현식 개요

regExp 개요 정규표현식(Regular Expression, RegExp) 특정한 규칙을 가진 문자열의 집합을 표현하는데 사용하는 형식 언어 정규표현식 스타일 POSIX (Portable Operating System Interface) : Unix 기반 정규표현식 PCRE (Perl Compatible Regular Expression) : Perl 호환 정규표현식 정규표현식 테스트용 웹사이트 http://www.regexper.com/ http://www.regexpal.com/ http://regex101.com/ http://regexpal.com/ 정규표현식 Cheatsheets 출처 : https://www.jopenbusiness.com/mediawiki/RegExp RegExp - 오픈..

Linux 2023.01.15

vi (vim) 에디터에서 문자열 치환

vi (vim) 에디터에서 문자열 치환하는 방법 1. 명령어 기본 : 시작행,끝행s/원래문자열/변경문자열/옵션 기본적인 명령어는 위와 같습니다. 문자열은 '정규 표현식'도 사용 가능하며, 문자열에 슬래시 ('/') 를 쓰고 싶으면 앞에 역슬래시('\')를 붙여주시면 됩니다. (예 - 1~10 행의 'http://' 를 'https://' 로 바꾸고 싶다면, ':1,10s/http:\/\//http:\/\//' ) 2. 시작 행, 끝 행 지정 방법 (1) 기본적으로 숫자로 표현이 가능합니다. ex) 1~10 행 사이에서 치환 - : 1, 10 (2) 현재 커서가 위치한 행은 '.' 으로 표현이 가능. (3) 마지막 행은 '$'로 표현 가능 ex) 현재 행 ~ 마지막 행 까지 - :.,$s (4) %는 전체..

Linux 2023.01.15
728x90