当前位置:网站首页>shell脚本入门
shell脚本入门
2022-08-11 02:03:00 【高朵】
目录
一、Shell简介
Shell是一个命令行解释器。他接收用户命令,然后调用相应的应用程序。
二、Shell入门
查看系统安装了哪些shells
cat /etc/shells

一般系统默认的shell是bash
echo $SHELL

三、第一个Shell脚本
首先创建一个脚本
eg:touch helloworld.shvim helloworld.sh
回车后,进行编写第一个shell脚本内容。
#!/bin/bash //以这句话进行开头
echo "#!/bin/bash
echo "helloword!!!!!!!""

使用./helloworld.sh会出现没有权限的提示,要对他增加执行权限
使用命令chmod 777 helloworld.sh
第一种执行方法是用bash解析器帮你执行脚本,而第二种方式是脚本自己执行,需要执行权限。
四、第二个shell脚本:多命令处理
在某个目录下创建一个txt文档,并将一条命令输出发送到文件中。
在cdx.txt文件中能查看到刚输入的字符
五、常用系统变量
$HOME $PWD $SHELL $USER
六、自定义变量
定义格式:变量名=变量值
删除格式:unset 变量名
输出变量:echo $变量
声明静态变量: readonly 变量,注意:不能unset 除非重启
变量定义规则:(1) 等号左右两边一定不能出现空格
(2)变量名称可以由字母、数字、下划线组成,不能以数字开头,环境变量名称建议大写。
(3)变量的值有空格,使用双引号进行括起来
– export 显示当前导出成用户变量的shell变量 (环境变量)和设置shell变量为用户变量
export D

七、Shell脚本中的特殊变量
$n(n为数字,0-10以内用$0-9表示,大于10之后用{}表示)
#!/bin/bash
echo "$0 $1 $2 $3"

$# 表示执行脚本传入参数的个数,常用于循环
#!/bin/bash
echo "$0 $1 $2 $3"
echo $#

$* (描述:代表命令行中所有的参数,把所有参数看成一个整体)
[email protected] (描述:也代表命令行中所有的参数,不过把每个参数区分对待)
#!/bin/bash
echo "$0 $1 $2 $3"
echo $#
echo $*
echo [email protected]

$?表示最近脚本执行的退出状态
八、运算符
expr 2 + 3 ,其中+两边必须要有空格
九、条件判断
两个整数之间的比较
文件权限判断
- w 有写的权限
- r 有读的权限
- x有执行的权限
文件类型判断
-f 存在且是常规文件
-e存在
-d存在且是目录
eg:
十、流程控制(if、case、for、while)
– if语句
执行语句
– case语句
执行语句
– for

– while

十一、read读取、basename&dirname
– read案例
- t 后面为几秒之内;-p后面为要在几秒内输入的内容


– basename(删掉所有的前缀包括最后一个‘/’字符,然后将字符串显示出来)
– dirname(保留路径,删除文件名)
十二、自定义函数
# 格式
[ function ] funname[()]
{
Action:
[return int;]
}
funname
#!/bin/bash
function sum(){
s=0;
s=$[$1 + $2]
echo $s
}
read -p "1:" P1
read -p "2" P2
sum $P1 $P2

十三、sed命令
sed是Linux下一款共能强大的非交互流式文本编辑器,能对文本进行增删改查,支持按照文本字段,按照正则去匹配文本内容,适用于大文本的编辑。
a 新增
d 删除
s 查找并替换
– 1a表示在第一行新增
十四、swk命令
awk是一种编程语言, 一个强大文件分析工具,把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行分析处理。
-F 指定输入文件分隔符
-v 赋值一个用户定义变量
echo "${LOCAL_PATH}" | awk -F "build" '{print $1}'
边栏推荐
猜你喜欢

通过微透镜阵列的传播

经典面试题 之 GC垃圾收集器

Oops Framework模板项目新手引导

FPGA learning column (xinlinx) serial communication -

【oops-framework】模板项目【oops-game-kit】使用简介

Engineering Design of Single-sided PCB Routing Impedance

Section 4-6 of the first week of the second lesson: Appreciation of medical prognosis cases + homework analysis

年薪30W,BAT抢着要,懂面试技巧的测试人究竟多吃香?

Alibaba 最新神作!耗时 182 天肝出来 1015 页分布式全栈手册太香了

MySQL - an SQL in MySQL is how to be performed?
随机推荐
络达开发---自定义BLE服务(二):功能实现
Shengxin experiment record (part2)--tf.reduce_sum() usage introduction
How to create an index when sql uses where and groupby?
单面PCB布线阻抗的工程设计
117. 本地开发好的 SAP UI5 应用部署到 ABAP 服务器时,中文字符变成乱码的原因分析和解决方案
Qt 中的隐式共享
数论基础-整除(编程例题)
软件测试面试题:在频繁的版本发布中,如何回归测试?
Future Trends in Vulnerability Management Programs
Is container technology really the savior of environmental management?
【C 数据存储详解】(1)——深度剖析整形数据在内存中的存储
两日总结十
Engineering Design of Single-sided PCB Routing Impedance
leetcode 739. Daily Temperatures 每日温度(中等)
[The method of calling the child page from the parent page of the iframe] Stepping on the pit: It is the key to use `[x]` when getting elements. You cannot use `.eq(x)`, otherwise it will not be obtai
paddle2.3和torch1.8在SentenceBert上的性能对比
Research on the Application of Privacy Computing Fusion
OpenWrt之opkg详解
3342:字符串操作 题解
The classification of inter-process communication (IPC) and the development of communication methods