得懂点shell脚本

绝大部分时候不用自己写,但看看还是得能看得懂,一起来看个不到10行的例子。

#!bin/bash
getContent() {
  if [ ! -e $1 ]; then return 1;fi
  content=`cat $1`
  echo ${content//root/h2do}
}
getContent /etc/h2do
echo $?
getContent /etc/passwd

第1行:选择bash来解释后续脚本;

第2行:函数声明;

第3行:用到了保留变量$1,表示第一个参数,第一个参数为文件路径,判断文件是否存在,如果不存在函数直接返回;

第4行:使用cat命令将文件内容存入变量content;

第5行:输出content变量,同时通过正则将内容中的所有root替换为h2do,变量后一个/时只替换一次,两个//替换全部;

第7行:函数调用,使用一个不存在的文件;

第8行:输出上一个命令返回结果;

第9行:函数调用,使用一个存在的文件;

时间: 2024-10-16 15:20:44

得懂点shell脚本的相关文章

一篇文章学懂Shell脚本

Shell脚本,就是利用Shell的命令解释的功能,对一个纯文本的文件进行解析,然后执行这些功能,也可以说Shell脚本就是一系列命令的集合.Shell可以直接使用在win/Unix/Linux上面,并且可以调用大量系统内部的功能来解释执行程序,如果熟练掌握Shell脚本,可以让我们操作计算机变得更加轻松,也会节省很多时间. Shell应用场景 Shell能做什么 将一些复杂的命令简单化(平时我们提交一次github代码可能需要很多步骤,但是可以用Shell简化成一步) 可以写一些脚本自动实现一

一篇文章让你快速入门 学懂Shell脚本

Shell脚本,就是利用Shell的命令解释的功能,对一个纯文本的文件进行解析,然后执行这些功能,也可以说Shell脚本就是一系列命令的集合. Shell可以直接使用在win/Unix/Linux上面,并且可以调用大量系统内部的功能来解释执行程序,如果熟练掌握Shell脚本,可以让我们操作计算机变得更加轻松,也会节省很多时间. Shell应用场景 Shell能做什么 将一些复杂的命令简单化(平时我们提交一次github代码可能需要很多步骤,但是可以用Shell简化成一步) 可以写一些脚本自动实现

shell脚本中实现自动判断用户有无密码

在最近完成老师布置的作业的时候遇到了如何让shell脚本中的命令自动判断一个用户是否已设置密码的问题,虽然看似不是很难的一个问题,但是在这一功能实现的过程中却包含了许多细小的而重要的知识.刚开始小编对此很是头疼,虽然我们查看一个用户是否有密码并不是很难,直接cat /etc/shadow这个文件看看密码位是否有加密的字符就行了,但是让命令自己去判断和匹配就不是很顺利了,小编上网查看后,并没有得到很好的答案,大多数都是人工查看的答案,并不适用于shell脚本中自动的判断,所以在认真对比/etc/p

linux下shell脚本执行jar文件

最近在搞一个shell脚本启动jar文件个关闭jar文件的东东.搞得我都蛋疼了.今天晚上终于弄好了 话说,小弟的linux只是刚入门,经过各方查资料终于搞定了.话不多说,下面开始上小弟写的shell脚本 上面是小弟写的shell脚本.写的不好请见谅. 首先遇到的第一个坑 我在window下写的 然后道linux中执行,在linux死活都说俺的19行有错误,俺就不明白了,哪里有错,问了下别人,也说没错.突然有个高人问我在哪编写的,小弟回答在win下,他告诉俺执行下这个命令: dos2unix se

Flume配置|shell脚本|python|SQL

Flume是一种高可用的,高可靠的,分布式的海量日志采集.聚合和传输的系统. 可以看一下模型: 每一个flume代理(agent)可以提供一项flume服务.每一个代理有三个成员:source.channel.sink 如上图所示,由source获取数据并发送给channel,channel就好比一个缓冲区,由sink来从channel里读取数据. ---------------------------------------------- 暂时没有图写个思路先: 模型1:多source---1

SHELL 脚本

一个很不错的bash脚本编写教程,至少没接触过BASH的也能看懂 建立一个脚本 Linux中有好多中不同的shell,但是通常我们使用bash (bourne again shell) 进行shell编程,因为bash是免费的并且很容易使用.所以在本文中笔者所提供的脚本都是使用bash(但是在大多数情况下,这些脚本同样可以在 bash的大姐,bourne shell中运行).  如同其他语言一样,通过我们使用任意一种文字编辑器,比如nedit.kedit.emacs.vi  等来编写我们的she

shell脚本一

在一些复杂的Linux维护工作中,大量重复的输入和交互操作不但费时费力,容易出错.这时候就需要用到脚本. 编写脚本的好处:  批量的处理,自动化的完成维护,减轻管理员的负担. linux的shell脚本是一种特殊的应用程序,常见的shell解释器有很多种,使用不同的shell时期内部指令:cat /etc/shells [[email protected] ~]# cat /etc/shells /bin/bash是大多数linux中默认的shell解释器.之后的所有脚本的编写都是bash脚本.

shell脚本学习笔记 (sed的高级用法----模式空间和保持空间)

前段时间在学习shell脚本,上次有提到sed的模式空间和保持空间概念,但是一直没有研究好,这两天研究了一下,所以将它发出来,不是很全面,仅仅供大家参考一下. 保持空间sed在正常情况下,将处理的行读入模式空间,脚本中的"sed command(sed命令)"就一条接着一条进行处理,直到脚本执行完毕.然后该行被输出,模式被清空:接着,在重复执行刚才的动作,文件中的新的一行被读入,直到文件处理完毕. 模式空间可以比喻为一个生产线,而保持空间则可以被比喻为仓库,这个比喻希望可以帮助大家理解

shell脚本基础进阶(二)----变量及运算符

变量及运算符 变量 变量,即可变化的量,实质是定义一段内存空间,这段空间可以存取任意符合定义的数据类型的数据. 一.bash变量命名: 1.只能包含字母.数字和下划线,并且不能以数字开头 2.不应该跟系统中已有的环境变量重名 3.最好能见名知意 二.bash变量分类: 1.本地变量:只在当前shell进程中有意义 2.环境变量:当前shell进程及子进程中有意义 3.局部变量:某个函数执行过程中有意义 4.位置参数变量:在脚本中引用传递给脚本的参数: 扩展:在shell中,一行命令行中,命令被自