쉘 스크립트는 빈출 문제이면서도 리눅스와 유닉스 기반 시스템에서 사용되는 강력한 스크립트 프로그래밍 언어입니다. 변수와 수식 계산은 쉘 스크립트에서 매우 중요한 개념으로, 이를 효과적으로 이해하고 활용하면 프로그래밍 작업을 보다 더 간편하게 수행할 수 있습니다. 이 글에서는 쉘 스크립트 변수와 수식 계산에 대해 초보자도 쉽게 이해할 수 있도록 소개하겠습니다.
1. 변수의 개념과 활용
변수는 데이터를 저장하고 관리하는 데 사용되며, 프로그래밍에서 중요한 역할을 합니다. 쉘 스크립트에서도 변수는 값을 저장하고 나중에 참조하기 위해 사용됩니다. 변수를 통해서 데이터를 관리하고, 반복 업무 같은 경우에 자동화를 해두면 시간을 절약할 수 있습니다
2. 쉘 스크립트에서의 변수 선언
쉘 스크립트에서 변수를 사용하기 위해서는 먼저 변수를 선언해야 합니다. 변수는 보통 영문자나 밑줄(_)로 시작하며, 영문자, 숫자, 밑줄을 조합하여 사용할 수 있습니다.
쉘스크립트를 작성해 보자!
1. 스크립트 파일 생성하기
vi first.sh
2, 아래 내용을 타입 하기 ( 직접 타이핑하면서 익히세요! 복붙은 실력을 늘려주지 않습니다)
2.1 inset 모드로 전환하기 위해서 shift+i 누르기
3. 아래 내용을 입력 후 esc
4. shift + ; 누르기
5. wq 입력 후 엔터
6. 만약 저장을 원하지 않는다면? q +! 입력 후 저장
#추가적으로 변수를 이용한 예시로
#글자수 출력
echo "${#name}"
#글자,공백포함 5번째부터 끝까지출력
echo "${name:5}"
#5번쨰 포함 3글자 출력
echo "${name:5:3}"
7. 스크립트 파일을 실행해 보자
bash 스크립트파일이름.sh
또는
sh 스크립트파일이름.sh
또는
chmod +x 스크립트파일.sh
./스크립트파일이름.sh
3. 변수 값 할당과 출력
변수에 값을 할당하려면 변수명=값 형식을 사용합니다. 할당한 값을 출력하려면 $변수명을 사용하면 됩니다.
터미널 창에서 바로 출력을 원할 때는
4. 환경 변수와 지역 변수의 차이
쉘 스크립트에서 환경 변수와 지역 변수로 구분됩니다. 환경 변수는 전체 쉘에서 사용 가능하며, 지역 변수는 특정 함수나 블록에서만 유효합니다.
5. 쉘 스크립트에서의 수식 계산
수식 계산을 위해 expr 명령어나 산술 연산자를 사용할 수 있습니다. 수식 계산은 숫자 연산이나 비교를 포함합니다.
주의할 점
expr 명령어에서 띄어쓰기를 안 하게 된다면? string 문자열 처리를 하게 됩니다! 그러므로 연산자를
\연산자, '연산자' 등으로 구분해 줘야 돼요
6. 사용자 입력값을 받아 수식 계산하기
사용자로부터 입력값을 받아와 변수에 저장한 후, 해당 변수를 이용하여 수식 계산을 할 수 있습니다.
read 명령어 사용하기
7. 쉘 스크립트에서의 변수와 수식 활용 방안
쉘 스크립트에서 변수와 수식 계산을 활용하여 반복 작업을 자동화하거나 복잡한 계산을 간편하게 수행할 수 있습니다.
자주 묻는 질문
Q1. 쉘 스크립트 변수를 선언하는 방법은 무엇인가요?
답변 변수명=값 형식을 사용하여 변수를 선언할 수 있습니다
Q2. 어떻게 사용자로부터 입력값을 받아와 수식 계산에 활용할 수 있나요?
답변 read 명령 어을 사용 하여 사용자로부터 입력값을 받아온 후 해당값을 변수에 저장하여 수식 계산에 활용할 수 있어요
Q3. 쉘 스크립트에서 expr 명령어를 사용할 때 주의해야 할 점은 무엇인가요?
답변 expr 명령어 내에서 변수를 사용할 때에는 변수를 '$'로 감싸야하며 공백, 연산자를 주의해야 됩니다
Q4. 쉘 스크립트에서 환경 변수와 지역 변수의 차이는 무엇인가요?
답변 환경 변수는 전체 쉘에서 사용 가능하고, 지역 변수는 특정 함수나 블록 내에서만 유효한 변수로 사용 가능합니다
Q5. 변수와 수식 계산을 활용하여 어떤 작업을 자동화할 수 있나요?
변수와 수식 계산을 활용하여 간단한 계산기 프로그램, 파일 크기 계산, 기초적으로는 이렇게 사용할 수 있고
숙련이 되신다면 음.. 정말 무궁무진하게 쓸 수 있습니다.. ( 화이트해커가 될 수도 있고,, 보안 지식을 응용해서 패치 프로그램 개발, 인터넷이 안 되는 소프트웨어 업데이트 세밀한 설정, 만능입니다 ㅎㅎㅎ)
'리눅스 > 리눅스마스터1급' 카테고리의 다른 글
[리눅스마스터1급] 핵심 내용 정리: 리눅스 특징 (73) | 2023.08.29 |
---|---|
[리눅스마스터1급] 필수 개념 정리: 운영체제의 이해 (22) | 2023.08.29 |
[리눅스마스터] 리눅스 top 명령어와 CPU 성능 분석 (28) | 2023.08.22 |
[리눅스마스터1급] - systemd 의 개요 및 systemctl 명령 (42) | 2023.08.19 |
[리눅스마스터1급] - 주요 디렉터리 와 경로 (74) | 2023.08.18 |