xshell命令 下

Shell数组
Shell中数字用括号来表示,元素中用“空格”符号分隔开
注意:往数组里添加值,数组的长度自动增长。
例:创建数组 : arr=()
读取数组:echo arr[1] 通过下标读取
获取数组中的所有元素 :echo ${arr[]} 或者 echo ${arr[@]}
获取数组的长度:echo ${#arr[@]}
遍历数组:
For i in ${arr[]}
Do
Echo $i
Done

运算符
1.基础语法
((运算式))或

((运算式))或[运算式] + - * / % 加 减 乘 除 取余
Expr +,-,*,/,% 加 减 乘 除 取余
注意:expr 运算符间要有间隔
例:计算3+2的值 expr 2 + 3
计算(2+3)*4的值 expr expr 2 + 3 * 4
条件判断
1.基本语法
[ condition ] 注意:condition 前后要有空格 条件非空即为true
2.常用判断条件
2.1 两个整数之间比较
=字符串比较
-lt 小于 -le 小于等于
-qe 等于 -gt 大于
-ge 大于等于 -ne 不等于
例:[ 23 -ge 22 ]
2.2 按照文件权限进行判断
-r 有读的权限 -w 有写的权限 -x 有执行的权限
2.3 按照文件类型进行判断
-f 文件存在并且是一个常规的文件
-e 文件存在
-d 文件存在并且是一个目录
2.4 多条件判断
&&表示前一条命令执行成功时,才执行后一条命令,||表示上一条命令执行失败后,才执行下一条命令
例:[ condition ] && echo ok || echo notok
输出为ok
流程控制
1.if判断
1.1基本语法
If [ 条件判断式 ]
Then
执行程序
Fi
或者
If [ 条件判断式 ]
Then
程序
Elif [ 条件判断式 ]
Then
程序
Else
程序
Fi
注意:1[ 条件判断式 ],中括号和条件判断式之间必须有空格
2.if后要有空格
例:输入一个数字,如果是1 输出正确 如果是2 输出错误
Touch if.sh
Vim if.sh
#!/bin/bash
If [ $1-eq “1” ]
Then
Echo “正确”
Elif [ $2 -eq “2” ]
Then
Echo”错误”
Fi
2.case 语句
1.基本语法
Case $变量名 in
“值1”)
值1执行的程序
;;
“值2”)
值2执行的程序
;;
)
如果变量的值不是以上的值,执行此程序
;;
Esac
注意:1.case行尾必须为单词”in” 每个模式匹配必须以右括号结束
2.双分号;;表示命令序列结束,相当于java中的break
3.最后的)表示默认模式 ,相当于java中的default
例:
#!/bin/bash
Case $1 in
“1”)
Echo “1de”
“2”)
Echo”2de”
*)
Echo “另外的”
Esac
3.for循环
1.基本语法
For ((初始值;循环控制条件;变量变化))
Do
程序
Done

For 变量 in 值1 值2 值3 …
Do
程序
Done

比较∗与
∗与@区别
都表示传递给函数或脚本的所有参数,不被双引号包含时,都一样
包含以后$*被看做为一个整体
4.while 循环
1.基本语法
While [ 条件判断式 ]
Do
程序
Done
例:
#!/bin/bash
S=0
i=1
While [ i−le100]DoS=i−le100]DoS=[s+

s+i]
I=$[i+1]
Done
Echo $s
Read 读取控制台输入
1.基本语法
Read (选项) (参数)
选项:
-p:指定读取值时的提示符
-t:指定读取值时等待的时间(秒)。
参数
变量:指定读取值得变量名
例:提示5秒内,读取控制台输入的名称
Read -t 5 -p “Enter your name in 5 seconds “ NAME
Echo $NAME

函数
1.basename 基本语法
Basename [string/pathname] [suffix] 删掉所有的前缀包括最后一个/
Suffix 为后缀,如果suffix 被指定了。Basename会将pathname或string 中的suffix去掉
例:basename /home/jinghang/a.txt
输出为a.txt
2.dirname 基本语法
Dirname 文件绝对路径 功能:从给定的包含绝对路径的文件名去除文件名,然后返回剩下的路径
例:dirname /home/jinghang/a.txt
输出为 /home/jinghang
3.自定义函数
1.基本语法
Function 函数名(){
Action;
Return int ;
}
2.经验技巧
必须在调用函数地方之前,先声明函数,shell脚本时逐行。不会像其他语言一样先编译。
函数返回值,只能通过$?系统变量获得,可以显示加:return返回,如果不加,将以最后一条命令运行结果,作为返回值。Return后跟数值n(0-255)
shell工具(文具处理)
1.Cut
Cut的工作就是剪,就是在文件总负责剪切数据用的。Cut命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段输出。
基本用法: cut [选项参数] filename 默认的分隔符时制表符
选项参数说明:
-f 列号,提取第几列
-d 分隔符,按照指定分隔符分割列
-c 指定具体的字符
例:cut -d “ 选项” -f 第几列 cut.txt
2.Sed
Sed是一种流编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中。称为“模式空间”,接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变。除非你使用重定向存储输出。
1.基本用法
Sed[选项参数] ‘command’ filename
选项参数说明
-e 直接在指令列模式上进行sed的动作编辑
可以执行多个
-i 直接编辑文件
命令功能描述
A 新增,a的后面可以接字串,在下一行出现
D 删除
S 查找并替换
g 表示全部替换
例:set ‘2a mei nv ‘ sed.txt
3.Awk
Awk是一个强大的文本分析工具,把文件逐行的读入,以空格默认分隔符将每行切片,切开的部分再进行分析处理。
1.基本用法
Awk [选项参数] ‘pattem1{action1} pattem2{action2}…’ filename
选项参数说明
-F 指定输入文件拆分隔符
-v 赋值一个用户定义变量
例:
搜索pwd文件以root关键字开头的所有行,并输出该行的第7列
Awk -F /^root/{print $7} passwd
BEGIN 在所有数据读取行之前执行;END在所有数据执行之后执行
例:只显示/etc/passwd 的第一列和第七列,以逗号分割,且在所有行前面添加列名user,shell。在最后一行添加“dahaige,/bin/zuishuai”

Awk -F ‘BEGIN{print “user,shell”} {print$1”,”$7} END{print “dahaige,/bin/zuishuai”}’ passwd
2.Awk的内置变量
变量 说明
FILENAME 文件名
NR 已读的记录数
NF 浏览记录的域的个数(切割后列的个数)
4.Sort
1.基本语法
Sort (选项)(参数)
选项 说明
-n 依照数值的大小排序
-r 以相反的顺序来排序
-t 设置排序时所用的分割字符
-k 指定需要排序的列
参数:指定待排序的文件列表
例:sort -t : -nrk 3 sort.sh
————————————————
版权声明:本文为CSDN博主「weixin_46014712」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_46014712/article/details/103570396

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值