pkgm: 동적 압축 패키지 유지보수 및 설치 스 크 립 트
압축 패키지 동적 유지보수 의 기본 사상:
1. 디 렉 터 리 사용 $PKGPATH 는 모든 압축 패키지 (tar. gz, tar. bz2, deb, zip, rar, 7z, tgz) 를 저장 합 니 다.
2. 이 압축 패키지 의 이름 을 파일 pkglist 로 동기 화하 기;
3. 명령 pkgm 를 사용 하여 pklist 의 압축 패 키 지 를 업데이트 하고 압축 패 키 지 를 표시 하거나 설치 합 니 다.
4. 정규 표현 식 매 칭 을 지원 합 니 다. 문 자 를 더 적 게 두 드 립 니 다.
새 가방 이 들 어 갈 때마다 $PKGPATH 시 pkgm - c 를 사용 하여 동기 화해 야 합 니 다. crontab 작업 을 설정 하여 정기 적 으로 수행 할 수 있 습 니 다.예 를 들 어 crontab - e 는. crontab 파일 을 열 어 편집 합 니 다. 30 22 * * * $HOME / csat / script / pkgm - c 는 매일 22 시 30 분 에 정기 적 으로 이 작업 을 수행 합 니 다. -c 옵션 의 역할 은 $PKGPATH 의 모든 압축 패 키 지 는 pkglist 에 동기 화 되 며, 이후 - l 또는 - i 에 따라 주어진 패턴 에 맞 는 패 키 지 를 간편 하 게 설치 할 수 있 습 니 다.
pkgm - l 을 사용 하여 압축 패 키 지 를 표시 합 니 다. 예 를 들 어 $PKGPATH 아래 구 글 - chrome - stablecurrent_i386. deb, 단지 pkgm - l google 에서 표시 할 수 있 습 니 다. pkgm - l ALL 을 사용 하면 $PKG 를 볼 수 있 습 니 다.PATH 의 모든 압축 파일.
pkgm - i google 을 사용 하면 google BRE 모드 와 일치 하 는 압축 패 키 지 를 설치 할 수 있 습 니 다. 예 를 들 어 상기 google - chrome - stablecurrent_i386.deb。
우세: 더 이상 스트레스 해소 명령 은 신경 쓰 지 않 아 도 된다.pkgm - i | - c | - l 만 기억 하면 됩 니 다.동적 유지보수;몇 글자 적 게 두 드 려 라.
코드 는 다음 과 같 습 니 다:
#!/bin/bash
##################################################################
# #
# #
# (.tar.gz , .tar.bz2, .deb, .zip, .rar) #
# pkglist . #
# #
# : PKG_PATH=$HOME/csat/packges #
# : SETUP_PATH=$HOME/setupdir #
# #
# #
##################################################################
#
PKG_PATH=$HOME/csat/packages
SETUP_PATH=$HOME/setupdir
usage()
{
echo 'usage: pkgm -c $PKG_PATH(=$HOME/csat/packages) $PKG_PATH/pkglist '
echo ' -l pkgname $PKG_PATH pkgname BRE ; ALL, '
echo ' -i pkgname pkgname BRE $SETUP_PATH ; ALL , '
echo ' -h '
echo ' '
echo 'NOTE: BRE POSIX , http://en.wikipedia.org/wiki/Basic_regular_expression#POSIX_Basic_Regular_Expressions, 《SHELL 》(3.2) '
}
decomp()
{
file=$1
echo "file is: " $file
case $file in
*.tar.gz|*.tgz) tar xzf $PKG_PATH/$file -C $SETUP_PATH
;;
*.tar.bz2) tar jxf $PKG_PATH/$file -C $SETUP_PATH
;;
*.deb) sudo dpkg -i $PKG_PATH/$file
;;
*.rar) unrar e $PKG_PATH/$file $SETUP_PATH
;;
*.zip) unzip $PKG_PATH/$file -d $SETUP_PATH
;;
*.7z) 7z e $PKG_PATH/$file -o${SETUP_PATH}/
;;
esac
}
if [ $# == 0 ]
then
usage
exit 1
fi
while getopts :hcl:i: opt
do
case $opt in
c) cat /dev/null > $PKG_PATH/pkglist
ls -1 $PKG_PATH | grep -E '[a-zA-Z0-9_.+-]+\.(tar\.(gz|bz2)|deb|rar|zip|7z|tgz)$' >> $PKG_PATH/pkglist
;;
l) param=$OPTARG
if [ "$param" = 'ALL' ]
then
cat $PKG_PATH/pkglist
else
grep -i "$param" $PKG_PATH/pkglist
fi
;;
i) param=$OPTARG
if [ "$param" = 'ALL' ]
then
files=$(grep '.*' $PKG_PATH/pkglist)
else
files=$(grep "$param" $PKG_PATH/pkglist)
fi
for file in $files
do
decomp $file
done
;;
h) usage
;;
'?') echo "pkgm: : -$OPTARG" >&2
echo "Type pkgm -h :) "
exit 1
esac
done
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
awk 상용 명령awk 는 모든 입력 줄 을 하나의 기록 으로 인식 하고 그 줄 의 모든 단어 도 메 인 을 하나의 필드 로 인식 합 니 다. ARGC 명령 줄 에 awk 스 크 립 트 가 들 어 오 는 매개...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.