打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
shell脚本基础

$? #判断上一条命令执行的是否成功,成功返回0,上一条命令不成功返回非0的数字

 

 

$0 #返回脚本的文件名称  $1-$9      返回对应的参数值  $*        返回所有的参数值是什么  $#      返回参数的个数和

 

 

 

调用变量的话 $或者a 或者 ${a}

 

 

 

 

 

常见的几个符号

       >会覆盖原有的内容

 

>>不会覆盖原有的内容

 

 

; #执行多条命令

 

|             #管道符

 

&&             #前面的命令执行成功,后面的才可以执行

 

 

 

|| #前面的命令执行失败,后面的才可以执行

"" #会输出变量值

 

' '     #输出本身

``    #输出命令结果eg:a=`date`;echo $a

 

2>/dev/null  #错误输出到无底洞

 

 

1>/dev/null  #正确输出到无底洞

 

 

 

 

加:expr 12 + 6

 

expr $a + $b

echo $[12 + 6]

echo $[a + b]

echo $((12 + 6)) echo$((a + b))

 

减:expr 12 - 6   expr$a - $b    echo $[12 - 6]  echo $[a - b]   echo $((12 - 6))  echo $((a - b))乘:expr 12 \* 6

 

expr $a \* $b

 

 

 

 

echo $[a * b]

 

echo $((12 * 6))

 

echo $((a * b))

 

除:expr 12 / 6   expr$a / $b    echo $((12 / 6)) echo $((a / b))   echo $[12 / 6]  echo $[a / b]   求余:expr12 % 6   expr $a % $b      echo $((12 % 6))echo $((a % b))      echo $[12 % 6] echo $[a % b]

 

 

 

 

小数

bc计算器 保留多少位小数可以通过scale 但是scale只对除法,取余数,乘幂 有效,对加减没有效。

 

 

 

 echo"scale=2;(0.2+0.3)/1" | bc    #计算出0.2+0.3的和并保留俩位小数,此时bc计算器会省略掉个位数的0

echo"scale=2;(1.2+1.3)/1" | bc   #计算出1.2+1.3的和并保留俩位小数

 

 

 

 

常见的条件判断

l  语法:[ 判断表达式]              ----必须有空格

文件(夹)或者路径: -e  目标是否存在(exist)

 

 

-d  是否为路径(directory)

-f  是否为文件(file)

[ -e foer.sh ] || touch foer.sh #判断当前目录下是否有foer.sh这个文件,假如没有就创建出foer.sh文件

l  权限:

-r  是否有读取权限(read)

 

-w  是否有写入权限(write)

 

-x  是否有执行权限(excute)

[ -x 123.txt ]&& echo '有执行权限'

l  整数值(int型):

-eq 等于(equal)

 

-ne 不等于(notequal) -gt 大于(greater than)

 

-lt 小于(lesserthan) -ge 大于或者等于(greater orequal) -le 小于或者等于(lesser orequal)  [ 9 -gt 8 ] && echo '大于'

l  小数(浮点型):

[ `echo '1.2 < 1.3' |bc` -eq 1 ] && echo '小于'

 

l  字符串:

=    相等!=   不相等

 

[ 'kkkkk' != 'kkkk' ]&& echo '不等于'

 

 

 

 

#!/bin/bash

touch $1

if [ $? -eq0 ]

then

echo"$1 创建成功"

fi

 

 

 

 

 

shell脚本输入之read命令

l  语法:read -参数

-p:给出提示符。默认不支持"\n"换行

#!/bin/bash

read -p"请输入密码:"  pass

echo $pass

 

-s:隐藏输入的内容

 

带换行的

 

-t:给出等待的时间,超时会退出read

等待5秒

-n:限制读取字符的个数,触发到临界值会自动执行

 

 

 

 

 

处理海量数据之grep命令

grep应用场景:通常对数据进行行的提取

l  语法:grep [选项]...[内容]...[file]

l   

-v  #对内容进行取反提取

-n  #对提取的内容显示行号

 

 

-w  #精确匹配

-i  #忽略大小写

^  #匹配开头行首

-E  #正则匹配

 

 

 

l  cut应用场景:通常对数据进行列的提取

l  语法:cut [选项]...[file]

-d  #指定分割符   -f  #指定截取区域    -c  #以字符为单位进行分割     注意:不加-d选项,默认为制表符,不是空格/bin/bash  #代表可以登录的用户      /sbin/nologin #代表不可以登录的用户  -d与-f:eg:以'|'为分隔符,截取出cut.txt的第一列跟第二列 cut -d '|' -f 1,2 cut.txt

eg:以'|'为分隔符,截取出cut.txt的第一列至第二列 cut -d '|' -f 1-2 cut.txt

 

eg:以'|'为分隔符,截取出cut.txt的第二列到最后一列 cut -d '|' -f 2- cut.txt

-c: eg:截取/etc/passwd文件从第二个字符到第三个字符

cut -c 2-3 cut.txt

 

eg:比如领导想叫你截取linux上面所有可登陆普通用户 grep '/bin/bash' /etc/passwd | cut -d ':' -f 1 | grep -v root

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
shell实现多线程笔记
Shell 函数
shell常用脚本命令集
Linux Shell 文本处理工具集锦大CC | 大CC
shell脚本
shell脚本编程
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服