Bash
16 posts
[Shell Script] 파일 한줄씩 읽기

Shell script에서 텍스트(txt) 파일을 한 줄씩 읽는 방법에 대해서 알아보겠습니다. 1. read로 파일 한 줄씩 읽기 2. 전체 텍스트를 하나의 문자열에 할당 이 글의 예제들은 Ubuntu 20.04에서 Bash shell을 사용하여 작성되었습니다. 1. read로 파일 한 줄씩 읽기 텍스트 파일 예제로 사용될 라는 파일의 내용은 다음과 같습니다. 파일 한 줄씩 읽기 그리고, read를 사용하여 아래와 같이 한 줄씩 텍스트를 읽을 수 있습니다. : i는 라인 숫자 의미, line은 텍스트 한줄 : 파일에서 한줄을 읽어 line에 저장 : -n 옵션은 문자열이 비어있지 않은 경우에 true 리턴, 즉, EOF(End Of File)에 도달했을 때는 while문을 종료하는 목적 : 파일을 가져와서 while문에서 사용하겠다는 의미 Output: 2. 전체 텍스트를 하나의 문자열에 할당 을 사용하여 파일의 모든 텍스트를 하나의 문자열로 만들 수 있습니다. 아래 예제…

[Shell Script] 문자열 첫글자, 마지막 글자 제거

문자열에서 첫번째 문자, 마지막 문자를 제거하는 방법에 대해서 알아보겠습니다. 1. 첫번째 글자 제거 2. 마지막 글자 제거 이 글의 예제들은 Ubuntu 20.04에서 Bash shell을 사용하여 작성되었습니다. 1. 첫번째 글자 제거 slicing을 이용하여 아래 처럼 첫번째 문자를 제거할 수 있습니다. : Index 1에서 문자열 마지막까지 잘라서 리턴, 첫글자인 Index 0 문자만 제거됨 맨 앞의 문자 2개를 제거하려면 처럼 시작 Index 변경 Output: cut을 이용하여 첫글자 제거 : 문자열의 2번째 글자부터 끝까지 잘라서 리턴 앞의 문자 2개를 제거하려면 처럼 3번째 글자부터 마지막까지 자르도록 숫자 변경 Output: 2. 마지막 글자 제거 는 string 문자열에서 마지막 문자 아무거나 1개(?)를 제거합니다. 마지막 글자 2개를 제거하려면 처럼 ?를 두개 사용 Output: slicing을 이용한 방법 slicing을 이용하여 마지막 문자를 제거…

[Shell Script] sleep으로 일정 시간 멈추기

shell script에서 sleep을 사용하여 일정 시간 코드 실행을 지연시키는 방법에 대해서 알아보겠습니다. sleep으로 몇 초 대기 시간/분/초 단위로 sleep 변수를 사용하여 대기 이 글의 예제들은 Ubuntu 20.04에서 Bash shell을 사용하여 작성되었습니다. sleep으로 몇 초 대기 은 N초간 대기를 합니다. 즉, 다음 코드는 수행되지 않으며, 설정된 시간이 지나면 다시 코드가 실행됩니다. Output: 시간/분/초 단위로 sleep 아래와 같은 문법으로 특정 시간 만큼 지연시킬 수 있습니다. 만약 0.5초 처럼, 1초보다 작은 시간을 대기해야 한다면 아래와 같이 소수점으로 표현하면 됩니다. 변수를 사용하여 대기 아래와 같이 sleep과 변수를 사용하여 일정 시간 대기시킬 수도 있습니다. Output:

[Shell Script] if문에서 문자열 비교

if문에서 두개의 문자열이 같은지, 다른지 비교하는 방법에 대해서 알아보겠습니다. 1. == 를 이용한 방법 2. != 를 이용한 방법 3. < 으로 문자열 크기 비교 이 글의 예제들은 Ubuntu 20.04에서 Bash shell을 사용하여 작성되었습니다. 1. == 를 이용한 방법 if문에서 연산자를 이용하여 두개의 문자열이 같은지 비교할 수 있습니다. : str1과 str2가 같으면 true Output: 2. != 를 이용한 방법 if문에서 연산자를 이용하여 두개의 문자열이 다른지 비교할 수 있습니다. 와 반대이며, 가독성에 따라서 두개를 교차하여 사용할 수 있습니다. : str1과 str2가 다르면 true, 같으면 false Output: 3. < 으로 문자열 크기 비교 두개의 문자열이 다를 때, 문자열 간의 크기를 비교할 수 있습니다. 문자열 크기 비교는 문자열들을 알파벳 순서로 정렬할 때 사용될 수 있습니다. 알파벳 문자의 경우, 첫번째 문자부터 비교하며, 알…

[Shell Script] if문에서 문자열 포함 여부 확인

if문에서 어떤 문자열이 다른 문자열에서 포함되었는지 확인할 때, 어떻게 구현하는지 알아보겠습니다. 1. [[ string1 =~ string2 ]]으로 문자열 포함 확인 2. substring을 이용하여 포함 여부 확인 이 글의 예제들은 Ubuntu 20.04에서 Bash shell을 사용하여 작성되었습니다. 1. [[ string1 =~ string2 ]]으로 문자열 포함 확인 를 사용하여 string에 string2가 포함되어있는지 확인할 수 있습니다. 아래 예제는 string 문자열에 pattern 문자열이 포함되어있는지 확인하는 예제입니다. Output: if문에 문자열을 직접 입력하여 포함 확인 만약 문자열 변수와 비교하지 않고, 직접 if문에 문자열을 입력하여 비교하려면, 아래와 같이 비교하시면 됩니다. Output: ’==‘를 이용한 방법 를 이용하여 비교할 수도 있습니다. 아래 코드들은 모두 string에 문자열 “World”가 포함되어있는지 확인하는 코드입니다. …

[Shell Script] 문자열 뒤에서 자르기

문자열을 뒤에서 원하는 만큼 자르는 방법에 대해서 알아보겠습니다. 1. 뒤에서 원하는 문자 개수만큼 문자열 자르기 2. rev와 cut을 이용하여 뒤에서 자르기 이 글의 예제들은 Ubuntu 20.04에서 Bash shell을 사용하여 작성되었습니다. 1. 뒤에서 원하는 문자 개수만큼 문자열 자르기 아래 예제는 문자열 뒤에서 길이만큼 자릅니다. : 문자열 뒤에서 length 만큼 잘라서 리턴, Index 부터 마지막까지 문자열 자르기 Output: 다른 예제 만약 뒤에서 5개 문자부터 3개 문자를 자르고 싶을 때는, 아래와 같이 구현하면 됩니다. Output: substring 문법 참고로 위에서 사용된 는 STR의 offset부터 length 길이만큼 자릅니다. offset은 자르려고 하는 문자열의 시작 index이며, length에는 offset부터 자르고 싶은 길이 2. rev와 cut을 이용하여 뒤에서 자르기 아래와 같이 rev와 cut을 사용하여 뒤에서 원하는 길이만…

[Shell Script] 대소문자 변환

Shell script에서 문자열의 대소문자 변환 방법에 대해서 알아보겠습니다. 대문자는 소문자로, 소문자는 대문자로 변경할 수 있습니다. 1. 문자열 전체를 대문자 또는 소문자로 변경 2. 특정 문자만 대문자 또는 소문자로 변경 이 글의 예제들은 Ubuntu 20.04에서 Bash shell을 사용하여 작성되었습니다. 1. 문자열 전체를 대문자 또는 소문자로 변경 문자열 전체를 대문자 또는 소문자로 변환하는 예제입니다. : string을 대문자로 변환 : string을 소문자로 변환 Output: 2. 특정 문자만 대문자 또는 소문자로 변경 아래와 같이 구현하면 문자열에서 특정 문자들만 소문자 또는 대문자로 변환합니다. : string에서 만 대문자로 변환 : string에서 만 소문자로 변환 Output:

[Shell Script] 사용자 입력 받기

Shell script에서 사용자 입력을 받는 방법에 대해서 알아보겠습니다. 1. read로 사용자 입력 받기 2. Prompt와 함께 사용자 입력 받기 3. 두개 이상의 입력 받기 이 글의 예제들은 Ubuntu 20.04에서 Bash shell을 사용하여 작성되었습니다. 1. read로 사용자 입력 받기 read로 아래와 같이 사용자 입력을 받을 수 있습니다. : 사용자가 데이터를 입력하면 name 변수에 저장 Output: 2. Prompt와 함께 사용자 입력 받기 read 명령어에 옵션을 사용하여, 사용자에게 메시지(Prompt)를 보여주면서, 사용자 입력을 받을 수 있습니다. Output: 3. 두개 이상의 입력 받기 두개 이상의 입력을 받으려면, 아래와 같이 input에 변수를 두개 입력하면 됩니다. 사용자가 2개의 데이터를 입력하면, 각각의 변수에 값이 입력됩니다. Output:

[Shell Script] 배열 선언, 초기화 방법

Shell script에서 배열(Array) 선언, 값 변경, 접근 등, 배열 사용 방법에 대해서 알아보겠습니다. 1. 배열 선언, 초기화 2. 다른 방법으로 배열 선언 및 초기화 3. 배열의 값 변경 4. for문으로 배열 순회 이 글의 예제들은 Ubuntu 20.04에서 Bash shell을 사용하여 작성되었습니다. 1. 배열 선언, 초기화 기본적으로 배열은 로 선언 및 할당할 수 있습니다. 배열 값 접근은 로 접근할 수 있습니다. Output: 2. 다른 방법으로 배열 선언 및 초기화 아래와 같은 방법으로 배열 선언 및 초기화도 가능합니다. 로 배열 선언 및 초기화 로 값 접근 Output: 3. 배열의 값 변경 아래와 같은 방법으로 선언된 배열의 값을 변경할 수 있습니다. 로 배열 값 변경 Output: 4. for문으로 배열 순회 선언된 배열은 아래와 같은 방식으로 for문에서 사용될 수도 있습니다. : 배열의 모든 요소를 순회 Output:

[Shell Script] 배열 길이, 크기 확인 방법

Shell script에서 배열의 길이, 크기를 가져오는 방법에 대해서 알아보겠습니다. 1. array[@]를 이용한 방법 2. array[*]를 이용한 방법 3. for문과 배열 길이로 배열의 모든 값 출력 이 글의 예제들은 Ubuntu 20.04에서 Bash shell을 사용하여 작성되었습니다. 1. array[@]를 이용한 방법 는 배열의 크기 값을 리턴합니다. 아래와 같은 방법으로 배열의 길이를 가져올 수 있습니다. Output: 2. array[*]를 이용한 방법 또한 배열의 크기 값을 리턴합니다. 아래와 같은 방법으로 배열의 길이를 가져올 수 있습니다. Output: 3. for문과 배열 길이로 배열의 모든 값 출력 for문과 배열 길이를 사용하여 배열의 모든 요소를 순회할 수 있습니다. : 0에서 (length-1)까지 반복 순회 : 배열의 i 인덱스 값 출력 Output:

[Shell Script] 파일 존재 확인 방법

Shell script에서 어떤 경로의 파일이 존재하는지 확인하는 방법에 대해서 알아보겠습니다. 1. 파일 또는 디렉토리 존재 확인 2. 디렉토리가 아닌 파일 존재 유무 확인 3. 파일이 아닌 디렉토리 존재 유무 확인 이 글의 예제들은 Ubuntu 20.04에서 Bash shell을 사용하여 작성되었습니다. 1. 파일 또는 디렉토리 존재 확인 아래와 같은 코드로 디렉토리 또는 파일이 존재하는지 확인할 수 있습니다. 는 디렉토리/파일이 존재하는지 확인하는데 사용됨, 파일이 존재하면 true 도 디렉토리/파일 존재 유무를 확인하는데 사용되지만, 현재 deprecated 되었음 Output: 2. 디렉토리가 아닌 파일 존재 유무 확인 는 파일이 아닌 디렉토리에 대해서도 존재 유무를 체크할 수 있습니다. 예를 들어, 는 디렉토리인데, 아래와 같이 로 체크하면 파일이 존재한다고 인식합니다. Output: 아래와 같이 체크하고 싶을 수 있습니다. 이럴 때는 연산자로 체크하면 됩니다. 해당 …

[Shell Script] 커맨드라인으로 인자 전달 받기

쉘 스크립트를 커맨드 라인에서 실행할 때 인자를 전달할 수 있습니다. 터미널에서 어떻게 인자를 전달하고, 스크립트에서 어떻게 인자를 받는지 예제로 알아보겠습니다. 이 글의 예제들은 Ubuntu 20.04에서 Bash shell을 사용하여 작성되었습니다. 1. 커맨드 라인에서 인자 전달 터미널에서 다음 명령어로 인자 없이 또는 인자와 함께 스크립트를 실행합니다. : 인자 없이 스크립트 실행 : 스크립트 실행하며 인자 1개 전달 : 스크립트 실행하며 인자 3개 전달 2. 스크립트에서 인자 받기 전달된 인자는 스크립트 안에서 으로 받을 수 있습니다. N은 전달된 인자의 순서가 됩니다. : 첫번째로 전달된 인자 값 : 두번째로 전달된 인자 값 : N번째로 전달된 인자 값 인자 3개를 전달하면서 스크립트를 실행하면 아래와 같이 출력됩니다. 인자를 전달하지 않거나, 1개 또는 2개만 전달하면 아래와 같이 동작합니다. 전달되지 않은 인자는 빈 값(null)이 됩니다. 3. 전달받은 …

[Shell Script] 문자열 합치기

두개 이상의 문자열을 합쳐서 하나의 문자열로 만드는 방법에 대해서 알아보겠습니다. 1. $으로 문자열 치환 및 연결 2. 두개의 문자열 연결 3. += 를 이용하여 문자열 연결 이 글의 예제들은 Ubuntu 20.04에서 Bash shell을 사용하여 작성되었습니다. 1. $으로 문자열 치환 및 연결 를 사용하여 하나의 문자열에 여러 문자열들을 입력할 수 있습니다. 아래 예제는 두개의 문자열을 하나의 문자열로 조합하는 예제입니다. : 문자열에서 과 는 각 문자열의 값으로 변환됨 : 중괄호를 사용해도 됨 Output: 2. 두개의 문자열 연결 아래와 같이 를 사용하여 문자열을 연결할 수 있고, 중간에 다른 문자열을 넣고 싶다면 을 사용하여 추가하면 됩니다. 따옴표 없이도 가운데 문자를 추가할 수 있지만, 띄어쓰기가 포함되면 실행 중 에러가 발생합니다. Output: 3. += 를 이용하여 문자열 연결 는 str1에 str2의 문자열을 추가합니다. 아래와 같이 하나의 문자열로 합칠…

[Shell Script] for, whlie, until 반복문

Shell script에서 for, whlie, until을 사용하여 반복문을 사용하는 방법에 대해서 알아보겠습니다. 1. for 문 2. while 문 3. until 문 이 글의 예제들은 Ubuntu 20.04에서 Bash shell을 사용하여 작성되었습니다. 1. for 문 for문은 다음과 같이 사용할 수 있습니다. 다른 언어의 for문과 동일합니다. 이 예제는 특정 횟수만큼 for문을 반복하는 예제입니다. : i가 1에서 5까지 반복 Output: for문으로 배열을 순회하는 예제 for문을 이용하여 배열의 모든 요소들을 순회하려면 아래와 같이 구현하면 됩니다. Output: break로 for문을 종료하는 예제 for문 안에서 를 호출하면 for문을 중단합니다. 아래 예제는 1에서 10까지 반복하지만, 5에서 break가 호출되어 10까지 반복하지 않고 중단됩니다. Output: for문에서 continue를 사용하는 예제 for문 안에서 를 호출하면 실행 중인 루프를…

[Shell Script] if와 case 조건문

Shell Script의 if문과 case문의 사용 방법에 대해서 알아보겠습니다. 1. if문 2. case문 이 글의 예제들은 Ubuntu 20.04에서 Bash shell을 사용하여 작성되었습니다. 1. if문 if문은 어떤 조건을 체크하여, 조건에 일치하면 특정 구문을 수행하고 그렇지 않으면 다른 동작을 하는데 사용됩니다. 아래 예제는 가 10일 때와 아닐 때 조건을 체크하여 다른 텍스트를 출력합니다. 에서 조건은 입니다. 에서 는 “is equal to”의 의미로, 가 10과 같으면 true, 그렇지 않으면 false가 리턴됩니다. Output: 조건 연산자 외에, 아래와 같이 다양한 조건 연산자들이 있습니다. Int 비교 연산자 의미 예제 -eq is equal to if [ “$a” -eq “$b” ] -ne is not equal to if [ “$a” -ne “$b” ] -gt is greater than if [ “$a” -gt “$b” ] -ge is grea…

[Shell Script] 현재 날짜, 시간 가져오기

Shell script에서 현재 날짜와 시간을 가져오는 방법에 대해서 알아보겠습니다. 1. date 명령어로 현재 날짜, 시간 가져오기 2. 다른 형식으로 날짜 출력 3. 간단한 표현으로 날짜/시간 출력 이 글의 예제들은 Ubuntu 20.04에서 Bash shell을 사용하여 작성되었습니다. 1. date 명령어로 현재 날짜, 시간 가져오기 다음과 같이 date와 포맷을 이용하여 현재 날짜, 시간을 가져올 수 있습니다. Output: date 아래와 같이 date 정보를 모두 출력할 수도 있습니다. Output: 2. 다른 형식으로 날짜 출력 처럼, 포맷을 변경하면 다른 포맷으로 날짜 정보를 얻을 수 있습니다. Output: 3. 간단한 표현으로 날짜/시간 출력 : Month/Day/Year 형식으로 날짜 출력 : Hour/Min/Sec 형식으로 시간 출력 : 12시 형식으로 시간 출력 Output: