Shell脚本



基础知识

  • –权限分析,当第一位是-的时候表示为文件
    当第一位是d的时候表示为目录
    在这里插入图片描述
    在这里插入图片描述
  • –每三位为一个
    • –rwx r-x r-x 755
    • –r 读 4
    • –w 写 2
    • –x 运行 1

  • –开头第一行必须要用
    #!/bin/bash

  • –两个大于号>> 表示追加输出

  • –变量赋值的时候 等于号两侧不能有空格

  • –cat << EOF(紧接着按回车)-----------------------------一般用来输出菜单

  • EOF(用来结束代码块,结束EOF必须顶格)

  • –变量 a=3

  • echo $a 查看变量的值(引用变量需要用美元号)
    +read -p "gave me a number:" a (与用户进行交互,可以间接给变量赋值)

  • UID查看用户信息 id =0时候是root用户

  • –常用的内置变量

    • $UID (echo 查看当前系统用户)
    • $? (echo $? 判断上一条命令是否是成功 结果 只有是0才表示命令成功)
    • $PATH (echo $PATH 查看环境变量)
  • –比较数字的两种方法
    -eq 等于 -ne 不等于 -gt 大于 -lt 小于 -ge 大于等于 -le 小于等于

    • [ - ] 首先中括号两侧必须有空格
    • [ 2 -eq 3 ] 比较第一个数字和第二个数字是否相等
    • [ 2 -eq 2 ] && echo 0 如果前面中括号表达式正确,则输出一个0
    • [ 2 -eq 3 ] && echo 0 || echo 1 类似于java : ?
      –使用双中括号 可以直接在中间写符号
      [[ $line != 10 ]] && echo 1
      [[ $line > 10 ]] && echo 1
例子:
userid=500
[ $userid -ne 1000 ]  && echo "You are not a valid user"
例子:
line=`cat 99.txt | wc -l`
[ $line -gt 10  ] && cat 99.txt
  • –比较字符串的一些方法
[[  $var  =  "hello"  ]] && echo 0 || echo 1
[[ $var =~   .....  ]]  && echo 0 || echo 1      可以在当中写正则表达式
  • –中括号几种常用用法
[  -z $dir   ] && echo 0 || echo 1                 判断目录是不是空值
[ ! -z $dir ] && echo 0 || echo 1                          判断目录是不是不为空
[  -d $dir  ] && echo 0 || echo 1                           判断路径是否存在
[ ! -d $dir ] && echo 0 || ehco 1			   判断路径是否不存在
[ -f  文件名 ] && echo 0 || echo 1                        判断文件是否存在

函数

  • –source(或者用 . ) ./函数库.lib 调用函数库

  • –shell函数里面不可以传递参数

function errorinfo(){
echo "hello"
}

errorinfo 直接用函数名便可以直接调用

  • –shell中位置变量
$0 ----代表执行脚本的路径+脚本的名字
$1 ----表示脚本启动的时候后面所跟的第一个参数 
$2 ----表示脚本启动的时候后面所跟的第二个参数
$3 ----表示脚本启动的时候后面所跟的第三个参数
$# ----表示在脚本启动的时候一共写了几个参数
$@ ----将脚本启动的时候的所有参数

在这里插入图片描述

  • –if判断格式讲解
if [  $i -eq 0  ];then
echo "="
elif
else
echo "!="
fi
  • –while 循环与for循环( $(())括号中表示的是算数运算符 )
    在这里插入图片描述
    在这里插入图片描述
`seq 10`                    输出1------10
`seq 2 10`                 输出2------10
`seq 2 2 10`  	          输出2 4 6 8 10 
`seq 10 -1 1`              输出10 9 8 7 6 5 4 3 2 1

for i In `ls`   循环输出当前目录,并查看每个文件
do 
cat $i
done

--break和continue
i=0
while [  9 -ne 10  ]
do
i=$(($i+1))
echo $1
[  $i -ge 10  ] && break
done
  • –利用循环按行读取文件
    在这里插入图片描述
  • –case条件分支简单讲解
    在这里插入图片描述

shell常用方法总结

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值