shell基础语法

一、shell简述 

shell是操作系统的最外层,shell可以合并编程语言以控制进程和文件,以及启动和控制其他程序。shell通过提示用户输入,向操作系统解释该输入,然后处理来自操作系统的任何输出结果来管理用户与操作系统之间的交互。简单来说,shell就是用户和操作系统之间的一个命令解释器。

二、shell种类

常见的有Bourne Shell(usr/bin/sh或/bin/sh)、Bourne Again Shell(/bin/bash)、C Shell(/usr/bin/csh)、

K Shell(/usr/bin/ksh)、Shell For Root(/sbin/sh)等,不同的Shell的语法有所不同,所以不能交换使用。最常用的是Shell是Bash,也就是Bourne Again Shell,由于易用和免费,bash在工作中被广泛使用,也是大多数Linux默认的Shell。

三、shell脚本的编写与执行

shell脚本文件以.sh为扩展名

执行使用命令:/bin/bash 或 ./xxx.sh 或 sh

调试使用的执行命令 /bin/bash -x xxx.sh

#!/bin/bash 表明是在哪个环境下执行
echo "开始创建文件夹"
mkdir /temp/shell
echo "文件夹创建完成"

四、shell的基础语法

1、echo

echo "hello word" 直接打印

echo -e "hello \n word" 换行打印

echo -e "\033[32m hello word \033[0m" 自定义自体颜色打印  

[32m代表颜色  

# 注释符

/n 表示换行

echo xxxx  xxxxxxx>> 文件 将xxxx和xxxxxxxx追加到文件

2、变量

分为局部变量和环境变量,局部变量只在创建它们的shell脚本中使用,环境变量则还可以在它们创建的任意子进程中使用。

1)自定义变量

变量名称=值 例DIR=/temp/shell

$变量名称 表示引用这个变量 $DIR

#!/bin/bash
DIR=/temp/shell
echo "$DIR"

2)shell专用变量

$0 表示当脚本的名称

$n (n表示1,2,3,4.......)表示当前脚本的第n个参数

$* 表示当前脚本的所有参数(不包括程序本身)

$# 表示当前脚本的参数的个数(不包括程序本身)

$? 命令或程序执行完成之后的状态,一般返回0表示成功

$$ 表示当前shell的pid

$UID 当前用户的id

$PWD 当前所在的目录

3、if条件语句

1)判断数字大小

if [ 表达式 ];then.......else.......fi


#!/bin/bash
num=6
if [ $num > 6 ];then
echo "the num 大于6"
else
echo "the num 小于等于6"
fi

2)判断目录是否存在

if [  -d 目录];then.......else......fi

if [ -d temp/test ];then
echo "目录存在"
else
echo "目录不存在"
fi

if [  !  -d 目录];then.......else......fi

if [ ! -d temp/test ];then
echo "目录不存在"
else
echo "目录存在"
fi

3)判断文件是否存在

if [ -f 文件名称];then.......else........fi

if [ -f temp/test ];then  
echo "文件存在"
else
echo "文件不存在"
fi

if [ ! -f 文件名称 ];then..... else......fi

if [ ! -f temp/test ];then  
echo "文件不存在"
else
echo " 文件存在"
fi

多条件判断 if [];then.....elif [];then......else......fi

4、循环语句

for 变量 in 变量集合(1 2 3 4)用空格分开 或者 `seq start end`

do 对i进行处理

done

for i in a b c
do
echo $i
done

for ((i=1;i<=100;i++))

do

echo $i

done

j=0
for ((i=1;i<=100;i++))
do
j=`expr $j + $i`
done
echo $j

循环操作文件

for i in `find/var/log/ -name "*.log"`
do
tar -czf $i.tgz
done

`` 反引号表示其中的内容是一条命令

5、case语法

case $变量名 in

值1)逻辑处理

;;

值2)逻辑处理

;;

值3)逻辑处理

;;

esac

case $1 in
1) echo 1
;;
2) echo 2
;;
3) echo 3
;;
esac

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值