天天看点

第6章核心代码《跟老男孩学习Linux运维:Shell编程实战》

和市面书籍不同,本书是作者经过15年以上运维工作及教学工作后,创新类企业级实战书籍,适合所有学习及从事Linux相关工作的读者。

《跟老男孩学习Linux运维:Shell高级编程实战》第6章,本书已于2017年1月出版,为了答谢读者,特将本章的部分代码分享如下:

有关代码的思路分析和详细注释,请支持作者购买正版书籍获得。

购作者签名书请访问下面地址:

http://oldboy.blog.51cto.com/2561410/1890533

如果你觉得看书枯燥乏味,可以购买本书配套视频和老男孩隔空对话学习。

2017跟老男孩学Linux运维:Shell编程实战书籍视频-第1-20章

http://edu.51cto.com/course/course_id-8159.html

第6章核心代码《跟老男孩学习Linux运维:Shell编程实战》
第6章核心代码(最后更新日期2017年2月2日)

[root@oldboy C06]# cat 6_15.sh
[ -f /etc ] || {
    echo 1
    echo 2
    echo 3
}


[root@oldboy C06]# cat 6_34_1.sh
#!/bin/sh
echo -n "pls input a char:" 
read var
[ "$var" == "1" ] && {
    echo 1
    exit 0
}
[ "$var" == "2" ] && {
    echo 2
    exit 0
}
[ "$var" != "2" -a "$var" != "1" ] && {
    echo error
    exit 0
}


[root@oldboy C06]# cat 6_34_2.sh
#!/bin/sh
var=$1
[ "$var" == "1" ] && {
    echo 1
    exit 0
}
[ "$var" == "2" ] && {
    echo 2
    exit 0
}
[ "$var" != "2" -a "$var" != "1" ] && {
    echo error
    exit 0
}


[root@oldboy C06]# cat 6_35_1.sh
#!/bin/sh
read -p "Pls input two num:" a b
#no1
[ -z "$a" ] || [ -z "$b" ] && {
    echo "Pls input two num again."
    exit 1
}
#no2
expr $a + 10 &>/dev/null
RETVAL1=$?
expr $b + 10 &>/dev/null
RETVAL2=$?
test $RETVAL1 -eq 0 -a $RETVAL2 -eq 0 || {
    echo "Pls input two "num" again."
    exit 2
}
#no3
[ $a -lt $b ] && {
    echo "$a < $b"
    exit 0
}
#no4
[ $a -eq $b ] && {
    echo "$a = $b"
    exit 0
}
#no5
[ $a -gt $b ] && {
    echo "$a > $b"
}


[root@oldboy C06]# cat 6_35_2.sh
#!/bin/sh
a=$1
b=$2
#no1
[ $# -ne 2 ] && {
    echo "USAGE:$0 NUM1 NUM2"
    exit 1
}
#no1
expr $a + 10 &>/dev/null
RETVAL1=$?
expr $b + 10 &>/dev/null
RETVAL2=$?
test $RETVAL1 -eq 0 -a $RETVAL2 -eq 0 || {
    echo "Pls input two "num" again."
    exit 2
}
#no3
[ $a -lt $b ] && {
    echo "$a < $b"
    exit 0
}
#no4
[ $a -eq $b ] && {
    echo "$a = $b"
    exit 0
}
#no5
[ $a -gt $b ] && {
    echo "$a > $b"
}


[root@oldboy C06]# cat 6_36_1.sh
#!/bin/sh
cat <<END
   1.panxiaoting
   2.gongli
   3.fanbinbing
END
read -p "Which do you like?,Pls input the num:" a
[ "$a" = "1" ] && {
    echo "I guess,you like panxiaoting"
    exit 1
}
[ "$a" = "2" ] && {
    echo "I guess,you like gongli"
    exit 1
}

[ "$a" = "3" ] && {
    echo "I guess,you like fangbingbing"
    exit 1
}
[[ ! "$a" =~ [1-3] ]] && {
    echo "I guess,you are not man."
}


[root@oldboy C06]# cat 6_36_2.sh
#!/bin/sh
path=/server/scripts
[ ! -d "$path" ] && mkdir $path

#menu
cat <<END
    1.[install lamp]
    2.[install lnmp]
    3.[exit]
    pls input the num you want:
END
read num
expr $num + 1 &>/dev/null
[ $? -ne 0 ] && {
    echo "the num you input must be {1|2|3}"
    exit 1
}

[ $num -eq 1 ] && {
    echo "start installing lamp."
    sleep 2;
    [ -x "$path/lamp.sh" ] || {
        echo "$path/lamp.sh does not exist or can not be exec."
        exit 1
    }
    $path/lamp.sh
    exit $?
}

[ $num -eq 2 ] && {
    echo "start installing LNMP."
    sleep 2;
    [ -x "$path/lnmp.sh" ] || {
        echo "$path/lnmp.sh does not exist or can not be exec."
        exit 1
    }
    $path/lnmp.sh
    exit $?
}
[ $num -eq 3 ] && {
    echo bye.
    exit 3
}

#[[ ! $num =~ [1-3] ]]&&{
[ ! $num -eq 1 -o ! $num -eq 2 -o ! $num -eq 3 ] && {
    echo "the num you input must be {1|2|3}"
    echo "Input ERROR"
    exit 4
}      

书不是看会的,而是不断练习会的!