一、Shell概述
Shell是一个命令行解释器,它接收应用程序/用户命令,然后调用操作系统内核
Shell还是一个功能强大的编程语言,易编写、易调试,灵活性强。
Shell程序文件对后置名无要求,一般使用.sh作为后缀
程序书写以#!/bin/bash开头
执行方式:
(1)bash xxx.sh
(2)chmod u+x xxx.sh
./xxx.sh
(3)source xxx.sh
这条执行语句是将xxx.sh脚本文件放置在当前bash进程中执行
二、变量定义
变量名=变量值
在定义变量时=前后不能有空格;
有空格时使用双引号将定义的变量包含起来
注:
在bash中定义的变量还是局部变量,可以在bash中使用export 变量名 将局部变量升级为全局变量,全局变量在bash中的子进程也可以操作。
变量的定义规则:
(1)数字不能开头,由数字、字母、下划线组成;
2)符号两侧不能有空格;
(3)在bash中变量默认类型都是字符串类型,无法直接进行数值的运算;
(4)变量值如果两侧有空格,需要使用单引号或双引号括起来。
特殊变量:
三、运算符
基本语法:$((运算式))或$[运算式]
四、Shell语句使用方法
1、条件判断
(1)test判断语句
(2)[ condition ]语句,此时[]两边要有空格
对于判断语句如果使用$?来返回上一次执行结果,0:判断正确;1:判断错误。
2、流程控制
3、多分支
4、For循环
5、While循环
6、Read读取控制台输入
#!/bin/bash
#首先判断输入参数个数是否为1
if [ $# -ne 1 ]
then
echo "参数个数错误,应该输入一个参数"
exit
fi
#丛书如参数中获取目录名称
if [ -d $1 ]
then
echo
else
echo
echo "目录不存在"
echo
exit
fi
DIR_NAME=$(basename $1)
DIR_PATH=$(cd $(dirname $1);pwd)
#获取当前日期
DATE=$(date +%y%m%d)
#定义生成的归档文件名称
FILE=archive_${DIR_NAME}_$DATE.tar.gz
DEST=/home/liuchuanqiang/linux/shell/$FILE
#开始归档目录文见
echo "开始归档"
echo
tar -czf $DEST $DIR_PATH/$DIR_NAME
if [ $? -eq 0 ]
then
echo "归档成功"
echo "归档文件为:$DEST"
fi