#!/bin/bash
check_dir_name() {
dir=$1
len=expr length $dir
last_char=expr substr $dir $len 1
if [ “$last_char” = “/” ]; then
dir=expr substr $dir 1 $((len-1))
fi
unset len last_char
}
cur_dir_files_conv() {
check_dir_name $1
for i in grep -l “$findstring” $dir/* 2> /dev/null
do
orig=”$i”
temp=”$i.tmp”
cp $orig $temp && \
sed -e “s/$exp_findstring/$exp_changestring/g” $temp > $orig && \
rm $temp
done
unset dir i orig temp
}
change_dir() {
cur_dir_files_conv $1
check_dir_name $1
for i in ls -d $dir/*/ 2> /dev/null
do
change_dir $i
done
}
if [ $# = 3 ]; then
findstring=$2
changestring=$3
exp_findstring=${findstring//./\\.}
exp_findstring=${exp_findstring//\//\\/}
exp_changestring=${changestring//./\\.}
exp_changestring=${exp_changestring//\//\\/}
change_dir $1
unset findstring changestring exp_findstring exp_changestring
else
echo “e.g.”
echo “ $0 ”
fi
exit 0
//—-사이까지————————————————–
ㄴ) 사용방법:
# sh tr.sh /var/www/html/bbs www.yahoo.co.kr www.mydns.com
위의 설명은 sh tr.sh 쉘스크립트를 이용하여 /var/www/html/bbs 디랙토리 이하 하위디랙토리까지
www.yahoo.co.kr의 문자열을 www.mydns.com으로 바꾸어 주라는 뜻입니다.
ㄷ) 주의사항:
상기 쉘을 실행할때는 항상 백업을 해둔후 실행 연습을 해보고 사용하십시오
그리고 바꾸고자하는 문자열의 조합을 잘 생각해서 사용하십시오.
ㄹ) 사용방법 예 1)
–order_ok.php 프로그램중에———————————————————-
//적립금결재시 에러처리
if($decision==”2″) {
$t_total_seprice = $tpoint + $tseprice; <—$t_total_seprice 변수를 $tot_total_seprice로 바꾸고자 할때
if($t_total_seprice != $total_seprice) error_msg(”적립금을 …”); <——바꿀문자열
if($tpoint > $member[point3]) error_msg(”입력하신 …”);
————————————————————————————
제가 비비샵 으로그램을 고칠때 사용한 방법입니다.
#sh tr.sh /var/www/html/bbshop $t_total_seprice $tot_total_seprice하면…
소스를 확인하여 보면 아래와 같이 변경이 된다는 말이지요…
–order_ok.php 프로그램중에———————————————————-
//적립금결재시 에러처리
if($decision==”2″) {
$tot_total_seprice = $tpoint + $tseprice; <—$tot_total_seprice 로 바꾸어진다
if($tot_total_seprice != $total_seprice) error_msg(”적립금을 …”); <——-바뀐문자열
if($tpoint > $member[point3]) error_msg(”입력하신 …”);
————————————————————————————
사용방법 예 2)
전역에 사용된 아이콘 명을 바꿀때도 이것으로 바꿉니다.
예 : sh tr.sh /var/www/html/bbshop yellow.gif black.gif
그러면 yellow.gif 가 black.gif로 바꾼다는 말이지요… 설명이 제대로 되었나 모르겠네요..