shell学习笔记

** Shell **

  • Shell 的工作形式分为两种:

1.交互式(Interactive):用户输入一条命令,Shell解释并执行一条。
2.批处理(Batch):用户事先编写一个Shell脚本(Script),其中包含诸多命令,Shell会一次执行完所有命令

  • Shell 脚本是将各种命令通过逻辑语句组合而成的程序:

** 查看系统中所有可用的Shell解释器 **

cat /etc/shells

** 查看当前的Shell解释器 **

echo $SHELL

** 编译简单的脚本 **

** Shell脚本的编写要使用到Vim文本编辑器,按照命令的执行顺序依次编写,每行写一条Linux命令。并且一个完整的Shell脚本则应该包括 “脚本声明”、“注释信息”、“可执行语句”。**

  • 脚本声明(#!):告知系统用何种shell来解释。
  • 注释信息(#):对可执行语句或程序功能做介绍,可以不写
  • 可执行语句:执行的具体命令。

例子:

vim Example.sh

# for Example
pwd
ls -al

运行有三种方式

  • 脚本文件路径:./Example.sh
  • sh脚本文件路径: sh Example.sh
  • source脚本文件路径: source Example.sh

接收用户的参数

命令名 参数1 参数2 参数3

Shell 预定义变量

  • $0 -房钱执行Shell脚本的程序名
  • 1 − 9 , 1-9, 19,{10},${11}… -参数的位置变量
  • $# -一共有多少个参数
  • $* -所有位置变量的值
  • $? -判断上一条命令是否执行成功,0为成功,非0为失败

判断用户的参数

  • 测试语句格式:[ 条件表达式 ] —括号两边均有一个空格

  • 细分测试语句有:文件测试、逻辑测试、整数值比较、字符串比较

文件测试:

[ 操作符 文件或目录名 ]
  • 操作符:
  1. -d --测试是否为目录
  2. -e --测试文件或目录是否存在
  3. -f --判断是否为文件
  4. -r --测试当前用户是否有权限读取
  5. -w --测试当前用户是否有权限写入
  6. -x --测试当前用户是否有权限执行

例子

[ -e /dev/cdrom ] && echo "Exist"
符号&&代表逻辑上的"与",当前面的命令执行成功才会执行后面的命令,判断 /dev/cdrom 设备是否存在,若存在则输出Exist。

逻辑测试:[ 表达式1 ] 操作符 [ 表达式2 ]

  • 操作符:
  1. && -逻辑的与,“而且”的意思
  2. || -逻辑的或,“或者”的意思
  3. ! -逻辑的否

例子

[ $USER!=root ] && echo "user" || echo "root"

整数值比较:

[ 整数1 操作符 整数2 ]
  • 操作符:
  1. -eq --判断是否等于
  2. -ne --判断是否不等于
  3. -gt --判断是否大于
  4. -lt --判断是否小于
  5. -le --判断是否等于或小于
  6. -ge --判断是否大于或等于

字符串比较:

[ 字符串1 操作符 字符串2 ]
  • 操作符:
  1. = -比较字符串内容是否相同
  2. != -比较字符串内容是否不同
  3. -z -判断字符串内容是否为空

例子

[ $LANG != "zh_CN.UTF-8" ] && echo "not zh_CN.UTF-8" || echo $LANG

条件测试语句

if条件语句 -分为单分支结构、双分支结构、多分支结构

  • 单分支:
if 条件测试操作
then 命令序列
fi
  • 双分支:if、then、else、fi
例子

vim example.sh

#!/bin/bash
# check ping
ping -c 3 -i 0.2 -W 3 $1 &> err.txt
if [ $? != 0 ]
then
echo "Host:$1 is down"
else
echo "Host:$1 is up"
fi
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值