Shell学习略图

本文是作者关于Shell脚本的学习笔记,重点介绍了BASH环境、声明、管道符与重定向、变量、测试与判断、if语句、函数、正则表达式、sed命令的使用等基础知识,旨在帮助读者掌握Shell脚本的编写和应用。
摘要由CSDN通过智能技术生成

这是我的第一篇技术博文,目的在于总结归纳自己所学,以求模块化、系统化地将知识留存在大脑,也可与好学之人一同交流进步。

测试工程师的技能版图,已从手工测试转向要求左移的代码能力,右移的运维能力,上要求产品思维,下要求广阔知识面,Shell脚本的掌握理所当然成为了必备技能。

求职寒冬从2019年延续到2020年,企业缩编的同时提高门槛,即使像玩笑话所说“面试造飞机”,我们所做的只有不断学习,提升自己。

本系列博文不是教程,亦不是大全,只是学习笔记。

Unix哲学:一条命令做一件事。
Shell脚本:命令的组合。

Shell思维导图

一、Shell脚本
1.多个命令按序执行,以分号隔开

cd ;ls ;more

2.BASH
在Centos7中默认的Shell为BASH,可用echo $SHELL显示,本文以BASH作为Shell环境。

3.声明(sha-bang)

  • 若将脚本写入文件,需在第一行添加声明
#!/bin/bash

4.脚本创建、执行方式

vim filename.sh
chmod u+x filename.sh

bash ./filename.sh   #可以不赋权直接执行
./filename.sh   #需可执行权限
source ./filename.sh   #执行时对当前环境造成影响,不创建子进程,属于外部命令
. filename.sh

二、管道符与重定向
1.管道符
进程通信方式之一:“|”

2.重定向

  1. 输入重定向:read var < /path/to/a/file
  2. 输出重定向:echo 123 > /path/to/a/file #输出的文件会被先清空再存储
  3. 错误重定向:wrongcmd 123 > filename.txt #将报错输出
  4. 全部重定向:allcmd & > file.txt
  5. 组合重定向,并输出为文件
vim filename.sh

#!/bin/bash
cat > /path/to/a/filename.txt << EOF   (以EOF结尾)
echo “hello world”
EOF

Bash filename.sh
cat filename.txt(输出为echo “hello world”)

三、变量

  • 变量赋值左右不能有空格

1.将命令执行结果赋值给变量

cmd1=$(ls -l /etc)
cmd2=‘ls /root'

2.变量引用

${变量名}或$变量名

3.变量引用范围

  • 当前Shell,若想当前终端生效则执行source filename.sh
  • export filename 子进程得到父进程的值

4.环境变量

  1. PATH:命令搜索路径(在当前终端生效)
  2. 预定义变量:
 echo $?   #上一条命令是否执行成功
 echo $$   #显示当前Shell进程PID
 echo $0   #查看当前脚本文件名
 echo $1   #传递给当前Shell的第一个参数

四、测试与判断

  • test命令,或使用中括号[ ]

 1. string1 = string2   #有空格
 2. test -f /etc/password   #文件是否存在
 3. [-d /etc/]   #目录是否存在
 4. [ 5 -gt 4 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值