1) 함수 function 이용하기
#!/bin/bash
function sum_x_y
{
echo "sum_$1_${2}"
for (( i=$1, sum=0 ; i<=$2; i++ ))
do
(( sum += i ))
done
echo "sum_x_y: sum: $sum"
return $sum
}
echo
rst=$(sum_x_y 1 10)
echo "result of sum_1_10: $rst"
echo
rst=$(sum_x_y 1 100)
echo "result of sum_1_100: $rst"
=> $?은 1byte 255이상을 넘어갈 수 없다. 따라서 위와 같이 rst 변수에 저장해서 함수로 넘겨준다
2) Daily Backup 만들기
#!/bin/bash
# Daily File Backup example
echo
echo "======== File Daily Backup =============="
echo
CONF_FILE=backupfiles
DEST_DIR=./backup
DATE=$(date +%y%m%d)
FILE_NAME=$DATE.tar.gz
DEST_FILE=$DEST_DIR/$FILE_NAME
#Check if BACKUP_FILES exist
if [ -f $CONF_FILE ]
then
echo $CONF_FILE exist!!!
echo
else
echo $CONF_FILE does not exist!!!
exit 1
fi
#Check Backup Directory exist
if [ -f $DEST_DIR ]
then
echo $DEST_DIR is regular file!!!
exit 2
else
if [ -e $DEST_DIR ] && [ -d $DEST_DIR ]
then
ls -ld $DEST_DIR
else
mkdir $DEST_DIR
ls -ld $DEST_DIR
fi
fi
#Make backup file name list
file_no=1
exec < $CONF_FILE
read filename
echo
echo "======== $filename ============"
while [ $? -eq 0 ]
do
if [ -f $filename ] || [ -d $filename ]
then
filelist="$filelist $filename"
else
echo $filename does not exist!!!
echo "continue to build backup list"
fi
fine_no=$[ $file_no + 1 ]
read filename
done
echo
echo "Backup file list : $filelist"
echo
#Makeup backup file and compress it using tar
echo "------ Start archiving backup files ---------"
echo
tar -czf $DEST_FILE $filelist 2> /dev/null
echo "Archiving completed!!!"
echo
echo "Resulting Archiving file : $DEST_FILE"
echo
ls -l $DEST_FILE
주의 : 쉘은 특별한 경우가 아니라면 항상 서브쉘에서 돌려야 한다...
기존 환경변수를 건드리면 안되기 때문에...
sh test.sh
source test.sh
. test.sh
는 되도록이면 쓰지 않는다!!
'Linux Shell Programming' 카테고리의 다른 글
ssh 재기동 및 비밀번호 활성화 (0) | 2019.02.03 |
---|---|
Linux 명령어(쉘 프로그래밍) - 예제 - 반복문(for, while), 구구단 (0) | 2018.01.09 |
Linux 명령어(쉘 프로그래밍) - 예제 (파일 또는 디렉터리 여부 확인 + Digit Count) (0) | 2018.01.09 |
Linux 명령어(쉘 프로그래밍) - 예제(서브쉘로 실행) if else 조건문, 숫자비교 (0) | 2018.01.09 |
Linux 명령어(쉘 프로그래밍) - 예제(2자리 연산, 인자 받기, 패스워드가 *로 찍히게 하기) (0) | 2018.01.08 |