728x90

shell 12

(Bash Shell) while문과 until문 예제

while문 - 주어진 조건이 참일경우 반복 형식 - while [조건문] do 실행명령 done 예제 스크립트 cnt 변수에 1을 대입하고 10보다 작을때까지 반복한다 숫자계산할때 expr명령어을 쓴다. #!/bin/bash cnt=1 while [ $cnt -lt 10 ] do echo "count" cnt=`expr $cnt + 1` done 결과 # ./while1.sh count count count count count count count count count #!/bin/bash echo "your name is: " read name while [ "$name" != "tom" ]; do echo "not name! your name is: " read name done ---------..

(AWK) 명령어 문법

AWK 명령어 문법 $ awk [옵션] 'pattern { action }' [파일|변수값] awk 옵션 설명 -u 버퍼를 사용하지 않고 출력한다. -F 확장된 정규 표현식으로 필드구분자를 지정한다, 다중 필드 구분자 사용 가능하다. awk -F 단일로 사용시 ':' 를 필드구분자로 사용 awk -F'[ :\t]' 다중 필드구분자 ':'와 tab을 필드구분자로 사용 -v 스크립트를 실행하기 전에 미리 변수를 지정하여 준다. -f awk 명령 스크립트를 파일에서 읽어온다. awk 동작 원리 - 패턴(pattern) 과 액션(action) awk는 파일 또는 파이프를 통해 입력 라인을 얻어와 $0라는 내부 변수에 라인을 입력한다. 각 라인은 레코드라고 부르고, newline(개행)에 의해 구분되다. 이때 패..

(쉘스크립트) AWK 개념

AWK (Aho Weinberger Kernighan) 개념 AWK는 텍스트가 저장되어 있는 파일을 원하는 대로 필터링하거나 추가해주거나 기타 가공을 통해서 나온 결과를 행과 열로 출력해주는 프로그램 이다. 좀더 쉽게 말하자면, awk는 "awk programming language"라는 프로그래밍 언어로 작성된 프로그램을 실행 하는 명령어라고 이해하면 좋다. 즉, 리눅스에서 쉘 스크립트(Shell Script)로 작성된 파일이 리눅스 쉘(Shell)에 의해 실행되는 것처럼, awk가 "awk programming language" 문법으로 작성된 코드를 이해하고 실행 한다는 의미로 보면 된다. 명령어 예를 들자면, 다음과 같이 a.txt 파일이 있다고 하자. 파일내용은 다음과 같다. 1 2 3 4 만일..

카테고리 없음 2023.02.08

(shell script)expr & bc

expr & bc 명령어 쉘에서는 숫자와 문자를 구분하지 않기 때문에 여타 프로그래밍 언어 처럼 숫자 연산이 간단하지 않다. 쉘에서 숫자를 연산하는 방법은 대표적으로 expr 와 bc 가 있다. expr은 bash 내장 명령어로 정수만 연산 가능하다. bc는 복잡한 공학용 산술과 실수 계산이 가능하다. 여기까지 보면, 차라리 bc만 쓰면 될것을 굳이 expr을 알아야 하는지 의문이겠지만, 정수 연산이 많은 프로그래밍을 할 경우 내장 명령어인 expr을 사용하는것이 속도면에서 효율적이기 때문이다. expr 명령어 expr 명령은 정수 계산을 하기 위해 사용되는 명령이다. 계산식을 쓸 때 연산기호와 정수 사이 반드시 공백으로 띄어쓰기를 해야 한다는 주의 점이 있다. $ expr 4 \* 3 12 $ expr..

쉘스크립트 예제

구구단 출력 BASH #!/usr/bin/bash for i in {2..9}; do # 2에서 9까지 레인지 리스트를 순회 for j in {1..9}; do # 1에서 9까지 레인지 리스트를 순회 echo "$i * $j = $((i*j))" # $(( )) 는 괄호안의 문자를 산술 처리 해준다. done done 프로그램의 실행시간 측정 아래의 프로그램은 인자로 주어진 명령을 실행하고 걸린시간을 나노초 단위로 측정한다. BASH #!/bin/bash # 만일 사용자가 인자를 주지 않았을 경우.. ($#는 인자의 모든 갯수) if [ $# -eq 0 ]; then echo "Input the filename, please..." exit 0 # 스크립트 종료 fit Command=$1 # 인자를 변수..

(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..

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) 예제

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

728x90