当前位置:网站首页>初识shell脚本
初识shell脚本
2022-08-01 04:35:00 【找BUG的老爷】
引言:现在越来越多的个人和企业在使用linux操作系统,所以一些基本的命令都是了解的。那么如果想减少手动的输入可以吗。答案是可以的。用什么方法呢,答案就可以写脚本,最方便的就是linux自带的shell脚本。接下来就跟着我一起,认识、学习并使用shell实现基本的操作,让我们开始吧!
既然是脚本,那么必然有解释器。shell的解释器很多,咱们咱们可以通过以下命令查看
cat /etc/shells
结果如下图所示
咱们使用其中一种就可以了,具体怎么使用呢接下来会提到
下面开始编辑脚本并且指定解释器
使用命令
vi test1.sh
进入里面编辑
#!/bin/bash
echo "hello world"
其中#!/bin/bash 就是指定解释器的作用了
可以执行了,但在执行之前要给这个文件赋一个执行权限
chmod +x test1.sh
接下来执行
./test1.sh
这个就是最简单的shell脚本了,仅仅是输出了hello world
以后大家接触更多的可能是$,那么关于它一些常见的组合以及意思我在这里列举出来,以后遇到的时候会用的到的
$0:Shell 的命令本身
$1到9:表示 Shell 的第几个参数
$? :显示最后命令的执行情况
$#:传递到脚本的参数个数
$$:脚本运行的当前进程 ID 号
$*:以一个单字符串显示所有向脚本传递的参数
$!:后台运行的最后一个进程的 ID 号
$-:显示 Shell 使用的当前选项
大家可以尝试着去敲一敲这些命令输出一下,我这里给大家先示范一下
echo $0
一些答疑
问:可以不指定解释器吗
答:可以,不指定的话,那么就是默认的解释器去执行了,即/bin/bash
问:默认的解释器是什么呢
答:可以使用以下命令
echo $SHEL
问:还有其他的执行方式吗
答:有的,此外还有两种方式,大家按照自己的习惯来
第一个就是执行解释器,文件名当参数
/bin/bash test1.sh
这种方式的话文件里面就没有必要去指定解释器了,因为以执行解释器为主
第二个就是source命令
source test1.sh
以上两个执行的方式都不用给脚本赋一个执行权限了,因为执行的不是文件本身
问:这几个执行的方式有什么区别吗
答:是有区别的,source的话可以理解为顺序的执行命令,现在显示的最终结果,同时目录是最终执行的所在的目录,另外两个的话可以这么理解, 新起了一个进程,当前和执行环境独立,对当前没有影响可以举一个例子看一下
新建一个test2.sh的文件,然后里面内容为
cd /
cd ~
直接解释器执行
sh test2.sh
然后pwd一下,你会发现路径并没有改变
那么source呢
source test2.sh
这个时候会发现路径已经改变了,区别的话也已经很清晰了
问:我的后缀名必须是.sh吗
答:不是,在linux中,所有的文件都没有后缀名的概念,可以起任何的名字,咱们这么起的原因就是方便查看,方便理解
以上就是关于shell脚本的基本内容了,接下来会持续更新~
边栏推荐
猜你喜欢
软件测试面试(三)
typescript26 - literal types
"ArchSummit: The cry of the times, technical people can hear"
MySQL3
Flutter "Hello world" program code
C# | 使用Json序列化对象时忽略只读的属性
这里有110+公开的专业数据集
typescript23-元组
Software Testing Weekly (Issue 82): In fact, all those who are entangled in making choices already have the answer in their hearts, and consultation is just to get the choice that they prefer.
博客系统(完整版)
随机推荐
UE4 rays flashed from mouse position detection
typescript26 - literal types
TypeScript简化运行之ts-node
「以云为核,无感极速」顶象第五代验证码
请问shake数据库中想把源的db0的数据同步到目的db5,参数怎么设置呢?
Unknown Bounded Array
PMP工具与技术总结
Flutter "Hello world" program code
How to write a high-quality digital good article recommendation
Flutter Tutorial 01 Configure the environment and run the demo program (tutorial includes source code)
button remove black frame
【kali-信息收集】枚举——DNS枚举:DNSenum、fierce
Flutter Tutorial 02 Introduction to Flutter Desktop Program Development Tutorial Run hello world (tutorial includes source code)
2022-07-31: Given a graph with n points and m directed edges, you can use magic to turn directed edges into undirected edges, such as directed edges from A to B, with a weight of 7.After casting the m
Passive anti-islanding-UVP/OVP and UFP/OFP passive anti-islanding model simulation based on simulink
The maximum quantity leetcode6133. Grouping (medium)
基于STM32设计的UNO卡牌游戏(双人、多人对战)
lambda
认真对待每一个时刻
Introduction to Oracle