5 개의 Shell 스 크 립 트 프로 그래 밍 입문 연습 예

예 1:특수 도형 그리 기

#!/bin/bash
 
MAX_NO=0
 
echo -n "Enter Number between (5 to 9) : "
 read MAX_NO
 
if ! [ $MAX_NO -ge 5 -a $MAX_NO -le 9 ] ; then
 echo "WTF... I ask to enter number between 5 and 9, Try Again"
 exit 1
 fi
 
clear
 
for (( i=1; i=i; s-- ))
 do
 echo -n " "
 done
 for (( j=1; j=1; i-- ))
 do
 for (( s=i; s<=MAX_NO; s++ ))
 do
 echo -n " "
 done
 for (( j=1; j<=i; j++ ))
 do
 echo -n " ."
 done
 echo ""
 done
 
echo -e "

\t\t\t Whenever you need help, Tecmint.com is always there"
당신 은 상기 예 에서'키워드'에 시 달리 지 않 을 것 입 니 다.많은 것 이 익숙 하거나 그들의 이름 에서 그들의 뜻 을 추측 할 수 있 습 니 다.예 를 들 어'max'는 특정한 변수의 최대 치 를 설정 하고'for'는 순환 입 니 다.
출력 결과:

[root@tecmint ~]# chmod 755 Special_Pattern.sh
[root@tecmint ~]# ./Special_Pattern.sh
Enter Number between (5 to 9) : 6
       .
      . .
     . . .
    . . . .
   . . . . .
  . . . . . .
  . . . . . .
   . . . . .
    . . . .
     . . .
      . .
       .
 
        Whenever you need help, Tecmint.com is always there
다른 언어의 프로 그래 밍 기반 이 있다 면 위의 스 크 립 트 를 배 우 는 것 은 쉬 울 것 입 니 다.설령 네가 컴퓨터 방면 의 신출내기 라 하 더 라 도 이 학습 과정 은 그리 어렵 지 않 을 것 이다.
예 2:알록달록 한 각본
Linux 터미널 도 다양한 색상 을 지원 합 니 다.아래 스 크 립 트 를 보십시오.

#!/bin/bash
 
clear
echo -e "&#092;&#048;33[1m Hello World"
 # bold effect
echo -e "&#092;&#048;33[5m Blink"
       # blink effect
echo -e "&#092;&#048;33[0m Hello World"
 # back to noraml
 
echo -e "&#092;&#048;33[31m Hello World"
 # Red color
echo -e "&#092;&#048;33[32m Hello World"
 # Green color
echo -e "&#092;&#048;33[33m Hello World"
 # See remaing on screen
echo -e "&#092;&#048;33[34m Hello World"
echo -e "&#092;&#048;33[35m Hello World"
echo -e "&#092;&#048;33[36m Hello World"
 
echo -e -n "&#092;&#048;33[0m"
  # back to noraml
echo -e "&#092;&#048;33[41m Hello World"
echo -e "&#092;&#048;33[42m Hello World"
echo -e "&#092;&#048;33[43m Hello World"
echo -e "&#092;&#048;33[44m Hello World"
echo -e "&#092;&#048;33[45m Hello World"
echo -e "&#092;&#048;33[46m Hello World"
 
echo -e "&#092;&#048;33[0m Hello World"
출력 결과:

너 는 위의 열 에 대해 하 나 를 들 고 셋 을 반대로 해서 그것 을 너의 대본 에 사용 할 수 있다.
예 3:암호 화 파일/디 렉 터 리
다음 예 는 파일 이나 폴 더 를 암호 화 하 는 방법 을 보 여 줍 니 다.현재 이 버 전의 스 크 립 트 는 암호 화 할 파일/디 렉 터 리 를 같은 폴 더 아래 에 두 어야 하 는 등 한계 가 있 습 니 다.또한'pinentry-gui'를 설치 해 야 할 수도 있 습 니 다.Fedora 에"pinentry-gui"를 설치 하 라 는 명령 은:
[root@midstage ~]# yum install pinentry-gui
Ubuntu/Debian 에"pinentry-gui"를 설치 하 라 는 명령 은:
[root@midstage ~]# apt-get install pinentry-gui
다음 코드 를 복사 하 는 스 크 립 트"Encrypt.sh"를 만 듭 니 다.너 도 여기에서 이 스 크 립 트 를 다운로드 할 수 있다.

#!/bin/bash
echo "Welcome, I am ready to encrypt a file/folder for you"
echo "currently I have a limitation, Place me to the same folder,
where a file to be encrypted is present"
echo "Enter the Exact File Name with extension"
read file;
gpg -c $file
echo "I have encrypted the file sucessfully..."
echo "Now I will be removing the original file"
rm -rf $file
출력 결과:

[root@tecmint ~]# chmod 755 Encrypt.sh
[root@tecmint ~]# ./Encrypt.sh
 
Welcome, I am ready to encrypt a file/folder for you
currently I have a limitation, Place me to the same folder,
where a file to be encrypted is present
Enter the Exact File Name with extension
 
package.xml
 
                   Enter passphrase
 
                   Passphrase _________________________________
 
 
                   Please re-enter this passphrase
 
                   Passphrase _________________________________
 
 
I have encrypted the file successfully...
Now I will be removing the original file
코드 설명:
gpg-c:이 명령 은 aka 를 사용 하여 파일 을 암호 화 합 니 다.필요 할 때 암호 화 된 파일 을 복호화 해 야 합 니 다.여기 서 우 리 는 구체 적 인 코드 를 제시 하지 않 으 니,너 는 스스로 써 보아 도 된다.알림:명령 gpg-d filename.gpg>filename 을 사용 하면 파일 을 복호화 할 수 있 습 니 다.
예 4:서버 이 용 률 보기
서버 의 이 용 률 을 보 는 것 은 관리자 의 중요 한 일상 업무 이다.똑똑 한 관리 자 는 이 임무 가 어떻게 자동화 되 는 지 안다.아래 의 이 스 크 립 트 는 서버 의 많은 정 보 를 캡 처 할 것 입 니 다.어서 해 보 세 요!

#!/bin/bash
date;
echo "uptime:"
uptime
echo "Currently connected:"
w
echo "--------------------"
echo "Last logins:"
last -a |head -3
echo "--------------------"
echo "Disk and memory usage:"
df -h | xargs | awk '{print "Free/total disk: " $11 " / " $9}'
free -m | xargs | awk '{print "Free/total memory: " $17 " / " $8 " MB"}'
echo "--------------------"
start_log=`head -1 /var/log/messages |cut -c 1-12`
oom=`grep -ci kill /var/log/messages`
echo -n "OOM errors since $start_log :" $oom
echo ""
echo "--------------------"
echo "Utilization and most expensive processes:"
top -b |head -3
echo
top -b |head -10 |tail -4
echo "--------------------"
echo "Open TCP ports:"
nmap -p- -T4 127.0.0.1
echo "--------------------"
echo "Current connections:"
ss -s
echo "--------------------"
echo "processes:"
ps auxf --width=200
echo "--------------------"
echo "vmstat:"
vmstat 1 5
출력 결과:

[root@tecmint ~]# chmod 755 Server-Health.sh
[root@tecmint ~]# ./Server-Health.sh
 
Tue Jul 16 22:01:06 IST 2013
uptime:
22:01:06 up 174 days, 4:42, 1 user, load average: 0.36, 0.25, 0.18
Currently connected:
22:01:06 up 174 days, 4:42, 1 user, load average: 0.36, 0.25, 0.18
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
tecmint pts/0 116.72.134.162 21:48 0.00s 0.03s 0.03s sshd: tecmint [priv]
--------------------
Last logins:
tecmint pts/0 Tue Jul 16 21:48 still logged in 116.72.134.162
tecmint pts/0 Tue Jul 16 21:24 - 21:43 (00:19) 116.72.134.162
--------------------
Disk and memory usage:
Free/total disk: 292G / 457G
Free/total memory: 3510 / 3838 MB
--------------------
OOM errors since Jul 14 03:37 : 0
--------------------
Utilization and most expensive processes:
top - 22:01:07 up 174 days, 4:42, 1 user, load average: 0.36, 0.25, 0.18
Tasks: 149 total, 1 running, 148 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.1%us, 0.0%sy, 0.0%ni, 99.3%id, 0.6%wa, 0.0%hi, 0.0%si, 0.0%st
 
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 3788 1128 932 S 0.0 0.0 0:32.94 init
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
3 root RT 0 0 0 0 S 0.0 0.0 0:14.07 migration/0
예 5:하드디스크 사용 현황 보기 및 알림 메 일 발송
아래 의 이 예 는 하 드 디스크 의 사용 공간 이 예상 한 값 을 초과 할 때 스 크 립 트 를 통 해 알림 메 일 을 보 내 는 것 을 보 여 줍 니 다.
MAX=95
[email protected]
PART=sda1
 
USE=`df -h |grep $PART | awk '{ print $5 }' | cut -d'%' -f1`
if [ $USE -gt $MAX ]; then
echo "Percent used: $USE" | mail -s "Running out of disk space" $EMAIL
fi
설명:위 스 크 립 트 의"USER"를 사용자 이름 으로 바 꿉 니 다."mail"명령 을 통 해 메 일 을 볼 수 있 습 니 다.

좋은 웹페이지 즐겨찾기