在原来的公司,使用linux 近一年,主要是写shell脚本。换了工作之后,就没有机会使用linux了。简单的总结一下,以免忘记。

函数

使用bzip解压

decompression_bz(){        current_path=`pwd`        dest_path=$2        if [ ! -d "$dest_path" ]        then            mkdir -p $dest_path        fi        cp -f $1*.tar  $dest_path        cd $dest_path        bzip2 -d  $1*.bz2        tar -xf $1*.tar        rm -f $1*.tar        cd $current_path}

说明:这个方法有两个参数:第一个参数是要压缩的文件,如jre.tar.bz;第二个参数是要解压到的目的文件夹。

使用示例:decompression_bz jre.tar.bz  /home/user2/install

sed命令就地写入

sed_i(){        scripts="$1"        targetFile=$2        sed -e "$scripts" "$targetFile" >"$targetFile.bak"        rm -f "$targetFile"        mv "$targetFile.bak" "$targetFile"}

示例:sed_i '/M2_HOME/'d .profile

shell 脚本

判断用户是否有home目录,

#!/bin/shsys_user="$1"if grep "^$sys_user:" /etc/passwd >/dev/null  2>&1;then    sys_home=`cat /etc/passwd |grep "^$sys_user" |awk -F : {'print $6'}`    if [ x"$sys_home" = x ]    then        echo "OS User is invalid, installer will exit."        exit 12    fi    if [ ! -d "$sys_home" ]    then        echo "OS User is invalid, installer will exit."        exit 12    fi     fiexit 0

删除文件(通配符)

rm -f $install_dir/config/*.xmlrm -f $install_dir/config/*.confrm -f $install_dir/config/*.xslrm -f $install_dir/config/*.dtdrm -f $install_dir/config/*.propertiesrm -f $install_dir/LICENSE*

注意:

rm-f "$install_dir/config/*.xml" 是错误的,因为含有通配符。

判断目录是否可写:

test -w "/home/whuang/"

判断目录是否可读:

test -r "/home/whuang/"