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相关推荐

  1. ionic入门教程第十八课-初识自定义指令directive oni-bar(tab-bar)

    经过这么长时间的学习,我想大家都有了一定的基础了. 这节课尝试着给大家讲点更加深入的东西,能理解的就好好学学,还理解不来的朋友也不要紧,可以当做扩展阅读看看就好. 学习切忌过于急躁. 到目前为止,我教 ...

  2. Directx11入门教程四十八之小议ComputeShader

    ComputeShader的简介 现代GPU很多时候不仅仅用于Graphics,  很多时候可以用GPU来做很多并行性较强的通用计算,简称GPGPU(General Purpose GPU),当然因为 ...

  3. python入门教程第28讲_Python爬虫入门教程第二十八讲: 《海王》评论数据抓取 scrapy...

    1. 海王评论数据爬取前分析 海王上映了,然后口碑炸了,对咱来说,多了一个可爬可分析的电影,美哉~ 摘录一个评论零点场刚看完,温导的电影一直很不错,无论是速7,电锯惊魂还是招魂都很棒.打斗和音效方面没 ...

  4. Spring Boot入门教程(二十八): 校验(validation)

    validation主要是校验用户提交的数据的合法性,比如是否为空,密码是否符合规则,邮箱格式是否正确等等,校验框架比较多,用的比较多的是hibernate-validator, 也支持国际化,也可以 ...

  5. Linux Shell脚本入门教程系列之(十三)Shell分支语句case … esac教程

    本文是Linux Shell脚本系列教程的第(十三)篇,更多Linux Shell教程请看:Linux Shell脚本系列教程 上一篇之 后,分支语句非常实用,基本上高级语言都支持分支语句(pytho ...

  6. Linux Shell脚本入门教程系列之(十一)Shell while循环

    本文是Linux Shell脚本系列教程的第(十一)篇,更多Linux Shell教程请看:Linux Shell脚本系列教程 在上一篇Linux Shell系列教程之(十)Shell for循环中, ...

  7. Go入门系列(十八) 反射、包和测试工具

    本系列文章目录 展开/收起 Go入门系列(一) 初识Go语言 Go入门系列(二) 变量.指针.数据类型简介和作用域 Go入门系列(三) 基础类型--整型.浮点型.布尔类型和字符串 Go入门系列(四) ...

  8. 【OpenCV入门教程之十二】OpenCV边缘检测:Canny算子,Sobel算子,Laplace算子,Scharr滤波器合辑

    本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接: http://blog.csdn.net/poem_qianmo/article/details/25560901 作者:毛星云(浅墨) ...

  9. 深度学习小白入门教程-基础环境篇

    深度学习小白入门教程-基础环境篇 如有图片显示失败,请回小主主页查看~ Anaconda 安装包下载方式一:官网(科学上网比较慢,不推荐) 安装包下载方式二:清华镜像(推荐) 具体安装步骤(跟着箭头来 ...

最新文章

  1. ASP.NET(C#)常用代码30例
  2. HDU 3410 Passing the Message
  3. reactjs redux入门完整版示例:store reducer getState dispatch subscribe action
  4. 机器学习性能度量(1):P-R曲线与ROC曲线,python sklearn实现
  5. onpagefinished等了很久才执行_其实,无所事事的日子才过得最累
  6. mysql 热块_mysql 优化
  7. 采用分治法求一个整数序列中的最大值和最小值
  8. linux apache tomcat php 共用 80,apache与tomcat共用80端口
  9. Python课堂上我与学生斗智斗勇已8个学期
  10. 不看可惜!无需代码,小白都会的可视化大屏,领导不重用你都难
  11. qpython3l使用手册_qpython3l怎么用
  12. Immutable 操作在 React 中的实践
  13. html header设置语言,html5 header标签 html header css布局教程
  14. 关于Kris最近发布的SlidingMenu的兼容问题
  15. python可以下载百度文库_python+selenium爬取百度文库不能下载的word文档
  16. 用Node.js写一个爬虫来爬小说
  17. C++11 std::this_thread::sleep_for让我睡一会再干活
  18. ubuntu 右键选单没有创建文档
  19. 最新计算机毕业设计选题推荐 - 毕设选题建议
  20. 【前端技术】一篇文章搞掂:JS

热门文章

  1. 树莓派安装使用全记录
  2. 2021年茶艺师(初级)报名考试及茶艺师(初级)考试资料
  3. 实战打靶集锦-016-lampiao
  4. 联通iPhone无WiFi芯片是个不明智的选择
  5. 文艺范的阅读网站上线
  6. css实现红心点赞动态效果
  7. 计算机技术大牛的博客集
  8. 锤子手机安装 linux,1.认识Linux并创建虚拟机来安装CentOS7
  9. 流计算过程中对于窗口的处理方式
  10. 关于分享,bshare分享百度分享