웹사이트 검색

Linux BASH 스크립팅의 세계를 항해 - 3부


'Shell Scripting' 시리즈의 이전 기사는 매우 높이 평가되었으므로 끝없는 학습 과정을 확장하기 위해 이 기사를 쓰고 있습니다.

  1. 기본 Linux 셸 스크립팅 언어 팁 이해 – 1부
  2. Linux 초보자가 쉘 프로그래밍을 배울 수 있는 5가지 쉘 스크립트 - 2부
배시 키워드

키워드는 컴퓨터 언어에 특별한 의미를 갖는 단어나 기호입니다. 다음 기호와 단어는 따옴표가 없고 명령의 첫 단어일 때 Bash에 특별한 의미를 갖습니다.

! 			esac 			select 		} 
case 			fi 			then 		[[ 
do 			for 			until 		]] 
done 			function 		while 		elif
if 			time 			else 		in 		{

대부분의 컴퓨터 언어와 달리 Bash는 스크립트를 읽기 어렵게 만들더라도 키워드를 변수 이름으로 사용할 수 있도록 허용합니다. 스크립트를 이해하기 쉽게 유지하려면 변수 이름에 키워드를 사용하면 안 됩니다.

명령은 쉘에서 $(명령)으로 구현됩니다. 명령의 전체 경로를 포함해야 할 수도 있습니다. 예를 들어 $ (/bin/date)는 올바른 실행을 위한 것입니다.

'whereis' 명령을 사용하면 특정 프로그램의 경로를 알 수 있습니다. 예: 날짜는 어디에 있나요

[root@tecmint /]# whereis date
date: /bin/date /usr/share/man/man1/date.1.gz

지금은 그것으로 충분합니다. 우리는 지금 이러한 이론에 대해 많이 이야기하지 않을 것입니다. 스크립트로 이동합니다.

현재 작업 디렉토리 이동

실행하는 동안 스크립트 끝에 숫자 값을 제공하기만 하면 현재 작업 디렉터리에서 상위 레벨로 이동할 수 있습니다.

#! /bin/bash 
LEVEL=$1 
for ((i = 1; i <= LEVEL; i++)) 
do 
CDIR=../$CDIR 
done 
cd $CDIR 
echo "You are in: "$PWD 
exec /bin/bash

위의 코드를 데스크탑에 "up.sh"로 저장하세요. 실행 가능하게 만듭니다(chmod 755 up.sh). 달리다:

./up.sh 2 (현재 작업 디렉토리를 두 레벨 위로 이동합니다).
./up.sh 4 (현재 작업 디렉토리를 4레벨 위로 이동합니다).

용도 및 적용분야

다른 위치에 라이브러리, 바이너리, 아이콘, 실행 파일 등을 포함하는 폴더 내부 폴더를 포함하는 더 큰 스크립트 위치, 개발자는 이 스크립트를 구현하여 매우 자동화된 방식으로 원하는 위치로 이동할 수 있습니다.

참고: For는 위 스크립트의 루프이며 루프의 값이 true가 될 때까지 계속 실행됩니다.

샘플 출력
[root@tecmint /]# chmod 755 up
[root@tecmint /]# ./up.sh 2
You are in: /

[root@tecmint /]# ./up.sh 4 
You are in: / 

[root@tecmint /]#

up.sh 다운로드

임의의 파일 또는 폴더 만들기

중복될 가능성이 없는 임의의 파일(폴더)을 생성합니다.

#! /bin/bash

echo "Hello $USER";
echo "$(uptime)" >> "$(date)".txt
echo "Your File is being saved to $(pwd)"

이것은 간단한 스크립트이지만 작동하는 것은 그리 간단하지 않습니다.

  1. 'echo' : 따옴표 안에 쓰여진 모든 내용을 인쇄합니다.
  2. '$' : 쉘 변수입니다.
  3. '>>' : 출력은 date 명령 뒤에 txt 확장자가 오는 출력으로 리디렉션됩니다.

date 명령의 출력은 날짜이고 시간시간, 입니다. Strong> 연도. 따라서 파일 이름이 중복될 가능성 없이 정리된 파일 이름으로 출력을 얻을 수 있습니다. 사용자가 나중에 참조하기 위해 타임스탬프로 생성된 파일이 필요한 경우 매우 유용할 수 있습니다.

샘플 출력
[root@tecmint /]# ./randomfile.sh  
Hello server 
Your File is being saved to /home/server/Desktop

바탕화면에 생성된 파일을 오늘 날짜와 현재 시간으로 볼 수 있습니다.

[root@tecmint /]# nano Sat\ Jul\ 20\ 13\:51\:52\ IST\ 2013.txt 
13:51:52 up  3:54,  1 user,  load average: 0.09, 0.12, 0.08

위 스크립트의 더 자세한 구현은 아래에 나와 있습니다. 이는 위의 원칙에 따라 작동하며 Linux 서버의 네트워크 정보를 수집하는 데 매우 유용합니다.

Randomfile.sh 다운로드

네트워크 정보 수집 스크립트

Linux 서버에서 네트워크 정보를 수집합니다. 스크립트가 너무 커서 여기에 전체 코드와 스크립트의 출력을 게시할 수 없습니다. 따라서 아래 다운로드 링크를 사용하여 스크립트를 다운로드하고 직접 테스트하는 것이 좋습니다.

참고: lsb-core 패키지와 기타 필수 패키지 및 종속성을 설치해야 할 수도 있습니다. 필수 패키지를 Apt 또는 Yum하세요. 여기에 사용된 대부분의 명령은 루트로 실행되도록 구성되어 있으므로 분명히 스크립트를 실행하려면 루트여야 합니다.

샘플 출력
[root@tecmint /]# ./collectnetworkinfo.sh  

The Network Configuration Info Written To network.20-07-13.info.txt. Please email this file to your_name@service_provider.com. ktop

위의 이메일 주소를 스크립트에서 변경하여 메일로 받을 수 있습니다. 자동으로 생성된 파일을 볼 수 있습니다.

Collectnetworkinfo.sh 다운로드

대문자를 소문자로 변환하는 스크립트

대문자소문자로 변환하고 출력을 필요에 따라 수정할 수 있는 텍스트 파일 "small.txt"로 리디렉션하는 스크립트입니다.

#!/bin/bash 

echo -n "Enter File Name : " 
read fileName 

if [ ! -f $fileName ]; then 
  echo "Filename $fileName does not exists" 
  exit 1 
fi 

tr '[A-Z]' '[a-z]' < $fileName >> small.txt

위의 스크립트는 한 번의 클릭으로 모든 길이의 파일 대소문자를 대문자에서 소문자로 변환할 수 있으며, 필요한 경우 그 반대로 변환할 수 있습니다.

샘플 출력
[root@tecmint /]# ./convertlowercase.sh  
Enter File Name : a.txt 

Initial File: 
A
B
C
D
E
F
G
H
I
J
K
...

새 파일(small.txt) 출력:

a
b
c
d
e
f
g
h
i
j
k
...

Convertlowercase.sh 다운로드

간단한 계산기 프로그램

#! /bin/bash 
clear 
sum=0 
i="y" 

echo " Enter one no." 
read n1 
echo "Enter second no." 
read n2 
while [ $i = "y" ] 
do 
echo "1.Addition" 
echo "2.Subtraction" 
echo "3.Multiplication" 
echo "4.Division" 
echo "Enter your choice" 
read ch 
case $ch in 
    1)sum=`expr $n1 + $n2` 
     echo "Sum ="$sum;; 
        2)sum=`expr $n1 - $n2` 
     echo "Sub = "$sum;; 
    3)sum=`expr $n1 \* $n2` 
     echo "Mul = "$sum;; 
    4)sum=`expr $n1 / $n2` 
     echo "Div = "$sum;; 
    *)echo "Invalid choice";; 
esac 
echo "Do u want to continue (y/n)) ?" 
read i 
if [ $i != "y" ] 
then 
    exit 
fi 
done
샘플 출력
[root@tecmint /]# ./simplecalc.sh 

Enter one no. 
12 
Enter second no. 
14 
1.Addition 
2.Subtraction 
3.Multiplication 
4.Division 
Enter your choice 
1 
Sum =26 
Do u want to continue (y/n)) ? 
y
1.Addition 
2.Subtraction 
3.Multiplication 
4.Division 
Enter your choice 
3 
mul = 14812
Do u want to continue (y/n)) ? 
n

simplecalc.sh 다운로드

이렇게 간단한 방법으로 강력한 계산 프로그램을 만드는 것이 얼마나 쉬운지 보셨나요? 끝이 아닙니다. 우리는 행정 관점의 폭넓은 관점을 다루는 이 시리즈의 기사를 하나 이상 더 작성할 것입니다.

지금은 여기까지입니다. 독자이자 최고의 비평가가 되려면 이 기사에서 얼마나 즐거웠는지, 그리고 다음 기사에서 보고 싶은 내용을 알려주는 것을 잊지 마십시오. 어떤 질문이라도 댓글로 환영합니다. 그때까지 건강, 안전, 조심을 유지하세요. 좋아요하고 공유하여 널리 알리는 데 도움을 주세요.