제길슨 잠 온다.
그래서 말인데
지금 부터 내가 할것은
cd에서 특이한 이동이다
- cd $HOME
- cd -
그건 그렇고 이제 할꺼는
# function define
pushd()
{
now_dir=`pwd`
}
popd()
{
cd $now_dir
}
pwd
# excute function
pushd
cd /tmp
pwd
popd
pwd
로 된 함수를 보는 거다. 흠.
killproc
프로세스 이름만 넣으면 찾아서 알아서 지기는 플그램.
#! /usr/bin/ksh
killproc()
{
if [ $# -eq 0 ]
then
echo "Usage $0 process_name"
else
myid=`id -un`
kpid=`ps -ef | grep $myid | grep $1 | grep -v "grep $1" | awk '{print $2}'
`
#echo $kpid
if [ "$kpid" = "" ]
# if [ ${kpid}S = "S"}
then
echo "$1 is not running"
else
kill $kpid
fi
fi
}
shift
시프트 : 밀기 연산
한개 씩 처리하고 뒤에 것을 앞으로 당긴다.
예) 디스크 사용자의 이름을 받으면 그사람의 디렉토리 양을 조사하고 인자가 없으면 모든 사용자의 디렉토리를 조사한다.
if [ $# -eq 0 ]
then
# all user
du -s `awk -F: '{ print $6 } ' /etc/passwd` > homedir.txt 2>/dev/null
else
# args
rm -f homedir.txt
touch homedir.txt
while [ $# -gt 0 ]
do
upath=`grep ^$1 /etc/passwd | awk -F: '{ print $6 }'`
du -s $upath >> homedir.txt 2>/dev/null
shift
done
fi
수정 버젼
dusave()
{
if [ -d $1 ]
then
du -s $1 >>homedir.txt 2>/dev/null
else
echo "\"$1\" is NOT such "
fi
}
rm -f homedir.txt
if [ $# -eq 0 ]
then
# all user
apath=`awk -F: '{ print $6 } ' /etc/passwd`
for upath in $apath
do
dusave $upath
done
else
args
touch homedir.txt
while [ $# -gt 0 ]
do
upath=`grep ^$1 /etc/passwd | awk -F: '{ print $6 }'`
dusave $upath
shift
done
fi
이 글은 스프링노트에서 작성되었습니다.



덧글
2009/12/11 05:53 # 답글
비공개 덧글입니다.