Linux真小白入门教程第十八集——上手shell
shell脚本
shell脚本的关键在于输入多个命令并处理每个命令的结果,甚至需要将一个命令的结果传给另一个命令。
之前我们学过可以将多个命令串起来执行,彼此之间用分号隔开即可
这就是一个最简单的shell脚本,date命令先运行,显示当前的时间与日期,后面who命令显示当前登录在系统上的用户(最长命令字符为255个)
这种输入的方式每次都要重新输入,我们就可以将这些命令保存为文本文件的形式,这样就不需要再命令行中手动输入这么多的命令,需要运行时,只需要运行这个文本文件即可。
要将shell命令放入到文本文件中,首先就需要一个文本文件,使用之前提到的文本编辑器vim来创建文件,然后将命令输入到脚本中。
在创建shell脚本时,必须在文件的第一行指定要使用的shell(shell只会解释第一行的#!)
# ! /bin/bash
(#)号用作shell脚本的注释行,shell并不会处理shell脚本中的注释行,但是shell脚本文件的第一行是个例外,(#)后面的惊叹号会告诉shell用哪个版本的shell来运行这个脚本。
指定shell之后,就可以在文件的每一行中输入命令,然后加一个回车符
也可以根据需要将两个命令写在一行,但是要用分号隔开,也可以在独立的行中书写。
写完后,将文件保存即可.
但是首先要让shell找到这个文本文件,可能需要一下做法:
1:将shell脚本文件所处的目录添加到PATH环境变量中
2:在提示符中用绝对路径或者相对路径来引用shell脚本文件
(注:有的Linux发行版将$HOME/bin目录添加进了PATH环境变量,他在每个用户的HOME目录下都提供了一个存档文件的地方,shell可以再哪里找到要执行的命令)
使用单点符号表示当前目录,但是还有一个问题就是,shell指明了还没有执行文件的权限,使用ls即可查看到其权限情况:
umask变量决定了所创建文件只有属主和属组有读写权限,而其他用户只有读的权限,说明都没有执行权限
所以又需要通过chmod命令赋予文件属主执行文件的权限
到此,即可执行该文件脚本
很多时候,命令的执行都会带来一些输出,这个时候,可能你还想添加自己的文本消息来告诉脚本用户脚本正在做什么。此时可以通过echo命令来实现这一点。
需要注意的是,echo命令后加的消息中如果有引号出现,则需要使用另一种引号将其划定界限
我们可以在shell脚本中的任意位置加上echo输出
此脚本运行时
echo命令的 -n参数可以让文本字符串和命令的输出 出现在同一行
echo -n "The time and date are: "
此字符串的尾部有空格,以显示美观
这一节学习了如何运行一个简单的shell脚本,
如何创建并编辑文本
vim
撰写脚本
#! /bin/bash
运行脚本
chmod u+x test ./test
运行中附带文本信息
echo
Linux真小白入门教程第十八集——上手shell相关推荐
- ionic入门教程第十八课-初识自定义指令directive oni-bar(tab-bar)
经过这么长时间的学习,我想大家都有了一定的基础了. 这节课尝试着给大家讲点更加深入的东西,能理解的就好好学学,还理解不来的朋友也不要紧,可以当做扩展阅读看看就好. 学习切忌过于急躁. 到目前为止,我教 ...
- Directx11入门教程四十八之小议ComputeShader
ComputeShader的简介 现代GPU很多时候不仅仅用于Graphics, 很多时候可以用GPU来做很多并行性较强的通用计算,简称GPGPU(General Purpose GPU),当然因为 ...
- python入门教程第28讲_Python爬虫入门教程第二十八讲: 《海王》评论数据抓取 scrapy...
1. 海王评论数据爬取前分析 海王上映了,然后口碑炸了,对咱来说,多了一个可爬可分析的电影,美哉~ 摘录一个评论零点场刚看完,温导的电影一直很不错,无论是速7,电锯惊魂还是招魂都很棒.打斗和音效方面没 ...
- Spring Boot入门教程(二十八): 校验(validation)
validation主要是校验用户提交的数据的合法性,比如是否为空,密码是否符合规则,邮箱格式是否正确等等,校验框架比较多,用的比较多的是hibernate-validator, 也支持国际化,也可以 ...
- Linux Shell脚本入门教程系列之(十三)Shell分支语句case … esac教程
本文是Linux Shell脚本系列教程的第(十三)篇,更多Linux Shell教程请看:Linux Shell脚本系列教程 上一篇之 后,分支语句非常实用,基本上高级语言都支持分支语句(pytho ...
- Linux Shell脚本入门教程系列之(十一)Shell while循环
本文是Linux Shell脚本系列教程的第(十一)篇,更多Linux Shell教程请看:Linux Shell脚本系列教程 在上一篇Linux Shell系列教程之(十)Shell for循环中, ...
- Go入门系列(十八) 反射、包和测试工具
本系列文章目录 展开/收起 Go入门系列(一) 初识Go语言 Go入门系列(二) 变量.指针.数据类型简介和作用域 Go入门系列(三) 基础类型--整型.浮点型.布尔类型和字符串 Go入门系列(四) ...
- 【OpenCV入门教程之十二】OpenCV边缘检测:Canny算子,Sobel算子,Laplace算子,Scharr滤波器合辑
本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接: http://blog.csdn.net/poem_qianmo/article/details/25560901 作者:毛星云(浅墨) ...
- 深度学习小白入门教程-基础环境篇
深度学习小白入门教程-基础环境篇 如有图片显示失败,请回小主主页查看~ Anaconda 安装包下载方式一:官网(科学上网比较慢,不推荐) 安装包下载方式二:清华镜像(推荐) 具体安装步骤(跟着箭头来 ...
最新文章
- ASP.NET(C#)常用代码30例
- HDU 3410 Passing the Message
- reactjs redux入门完整版示例:store reducer getState dispatch subscribe action
- 机器学习性能度量(1):P-R曲线与ROC曲线,python sklearn实现
- onpagefinished等了很久才执行_其实,无所事事的日子才过得最累
- mysql 热块_mysql 优化
- 采用分治法求一个整数序列中的最大值和最小值
- linux apache tomcat php 共用 80,apache与tomcat共用80端口
- Python课堂上我与学生斗智斗勇已8个学期
- 不看可惜!无需代码,小白都会的可视化大屏,领导不重用你都难
- qpython3l使用手册_qpython3l怎么用
- Immutable 操作在 React 中的实践
- html header设置语言,html5 header标签 html header css布局教程
- 关于Kris最近发布的SlidingMenu的兼容问题
- python可以下载百度文库_python+selenium爬取百度文库不能下载的word文档
- 用Node.js写一个爬虫来爬小说
- C++11 std::this_thread::sleep_for让我睡一会再干活
- ubuntu 右键选单没有创建文档
- 最新计算机毕业设计选题推荐 - 毕设选题建议
- 【前端技术】一篇文章搞掂:JS