shell脚本执行方式,更方便更快捷。
在进行linux测试时编写脚本是必不可少的。最近经常使用Linux,感觉太频繁地敲击键盘有些累了,于是想到了Shell脚本。可以把太多的命令写成一个脚本,这样每次执行一遍 shell文件,就可以省去了敲击键盘的时间。于是在网上搜了一些有关Linux下脚本编程的内容。
图为运行参考示例:
可以将运行代码一行行写在配置文件脚本中
更改其属性
运行shell脚本程序
Shell命令和流程控制
在shell脚本中可以使用三类命令:
1)Unix 命令:
虽然在shell脚本中可以使用任意的unix命令,但是还是由一些相对更常用的命令。这些命令通常是用来进行文件和文字操作的。
常用命令语法及功能
- echo "some text": 将文字内容打印在屏幕上
- ls: 文件列表
- wc –l filewc -w filewc -c file:
- 计算文件行数计算文件中的单词数计算文件中的字符数
- cp sourcefile destfile: 文件拷贝
- mv oldname newname : 重命名文件或移动文件
- rm file: 删除文件
- grep ''pattern'' file: 在文件内搜索字符串比如:grep
- ''searchstring'' file.txt
- cut -b colnum file:指定欲显示的文件内容范围,并将它们输出到标准输出设备比如:输出每行第5个到第9个字符cut -b5-9 file.txt千万不要和cat命令混淆,这是两个完全不同的命令
- cat file.txt: 输出文件内容到标准输出设备(屏幕)上
- file somefile: 得到文件类型
- read var: 提示用户输入,并将输入赋值给变量
- sort file.txt: 对file.txt文件中的行进行排序
- uniq: 删除文本文件中出现的行列比如: sort file.txt | uniq
- expr: 进行数学运算Example: add 2 and 3expr 2 "+" 3
- find: 搜索文件比如:根据文件名搜索find . -name filename -print
- tee: 将数据输出到标准输出设备(屏幕) 和文件比如:somecommand | tee outfile
- basename file: 返回不包含路径的文件名比如: basename /bin/tux将返回 tux
- dirname file: 返回文件所在路径比如:dirname /bin/tux将返回/bin
- head file: 打印文本文件开头几行
- tail file : 打印文本文件末尾几行
sed: Sed是一个基本的查找替换程序。可以从标准输入(比如命令管道)读入文本,并将结果输出到标准输出(屏幕)。该命令采用正则表达式(见参考)进行搜索。不要和shell中的通配符相混淆。比如:将linuxfocus 替换为 LinuxFocus :cat text.file | sed ''s/linuxfocus/LinuxFocus/'' > newtext.fileawk: awk
用来从文本文件中提取字段。缺省地,字段分割符是空格,可以使用-F指定其他分割符。cat file.txt | awk -F, ''{print $1 "," $3 }''这里我们使用,作为字段分割符,同时打印第一个和第三个字段。如果该文件内容如下: AdamBor, 34, IndiaKerry Miller, 22, USA命令输出结果为:AdamBor, IndiaKerry Miller, USA
2) 概念: 管道, 重定向和 backtick
这些不是系统命令,但是他们真的很重要。管道 (|) 将一个命令的输出作为另外一个命令的输入。
grep "hello" file.txt | wc -l
在file.txt中搜索包含有”hello”的行并计算其行数。
在这里grep命令的输出作为wc命令的输入。当然您可以使用多个命令。
重定向:将命令的结果输出到文件,而不是标准输出(屏幕)。
> 写入文件并覆盖旧文件
>> 加到文件的尾部,保留旧文件内容。
反短斜线
使用反短斜线可以将一个命令的输出作为另外一个命令的一个命令行参数。
命令: find . -mtime -1 -type f -print 用来查找过去24小时(-mtime –2则表示过去48小时)内修改过的文件。如果您想将所有查找到的文件打一个包,则可以使用以下脚本:
#!/bin/sh # The ticks are backticks (`) not normal quotes (''): tar -zcvf lastmod.tar.gz `find . -mtime -1 -type f -print`
3) 流程控制
"if" 表达式 如果条件为真则执行then后面的部分:
if ....; then
....
elif ....; then
....
else
....
fi
大多数情况下,可以使用测试命令来对条件进行测试。比如可以比较字符串、判断文件是否存在及是否可读等等…通常用" [ ] "来表示条件测试。注意这里的空格很重要。要确保方括号的空格。
- [ -f "somefile" ] :判断是否是一个文件
- [ -x "/bin/ls" ] :判断/bin/ls是否存在并有可执行权限
- [ -n "$var" ] :判断$var变量是否有值
- [ "$a" = "$b" ] :判断$a和$b是否相等
5. 执行脚本 Linux下的sh文件默认是有执行权限的。我们可以用命令:ls -l file_name
来查看用户对文件的权限。如果没有执行权限,可以执行以下命令添加:chmod +x file_name
。然后可以通过运行:sh XX.sh这样的命令来运行脚本。当然不同的系统可能不完全相同,需要根据实际情况来。例如有的Linux下是./XX.sh就可以运行。
概括地来说,shell对shell脚本的调用可以采用3种方式:
(1)一种是将文件名作为shell命令的参数,其调用格式为:
$ Bash script_file
当要被执行的脚本文件没有可执行权限时,只能使用这种调用方式。
(2)另一种调用的方法是先将脚本文件的访问权限更改为可执行,以便该文件可以作为执行文件调用。
具体的方法是:$chmod +x script_file
$PATH=$PATH:$PWD $script_file
(3)当执行一个脚本文件时,Shell就产生了一个Shell(即一个子进程)去执行文件中的命令。因此,脚本文件的变量值不能传递到当期Shell(即父进程)。为了使脚本文件中的变量值传递到当前Shell,必须在命令文件名前面加“.”。即:
$./script_file
“.”命令的功能是在当前shell中执行脚本文件中的命令,而不是产生一个子shell执行命令文件中的命令。
更多参考:
https://www.jb51.net/article/156952.htm
shell脚本执行方式,更方便更快捷。相关推荐
- 『SHELL』--SHELL脚本执行方式(转)
Shell脚本的执行方式: 注明:wd代表"脚本保存的目录" 1.fork 语法:/wd/shell.sh fork是最普通的, 就是直接在脚本里面用/wd/shell.sh来调用 ...
- shell简介和脚本执行方式
shell简介和脚本执行方式 1.shell简介 Shell是命令解释器(command interpreter),是Unix操作系统的用户接口,程序从用户接口得到输入信息,shell将用户程序及其输 ...
- 基于Hadoop的电商广告点击数的分析与可视化(Shell脚本执行与大屏可视化设计)
目录 摘要 大屏可视化预览 如何安装Hadoop集群 数据集介绍 项目部署流程 一键化配置环境和参数 一键化建立hive数据表 Flume配置及自动加载数据到hive中 数据分析 mysql接收数据表 ...
- java程序解析perl文件_如何从shell脚本执行perl文件
我有一个关于如何在shell脚本中执行perl文件的问题 我现在有两个文件,"test.sh"和"test.pl",这里是我的脚本示例 SHELL脚本 #!/b ...
- linux shell 执行目录,bash shell脚本执行的几种方法
bash shell 脚本执行的方法有多种,本文作一个总结,供大家学习参考. 假设我们编写好的shell脚本的文件名为hello.sh,文件位置在/data/shell目录中并已有执行权限. 方法一: ...
- kettle脚本Linux执行,kettle在linux下面用于shell脚本执行:转换或者作业
1 将windows下面创建好的转换,放到Linux某一个文件夹下面.如:把0816_em.ktr文件放到/home/cfj/kettle/testdemo下面. 注意里面的数据库用户名和密码可能需要 ...
- linux shell语法检查或者查看shell脚本执行过程的参数介绍及两种使用方法
shell语法检查或者查看shell脚本执行过程的参数介绍及两种使用方法 一.常用参数概述: set -x 与 set +x 在liunx脚本中可用set -x就可有详细的日志输出,省的老是要echo ...
- linux脚本无法执行命令,为什么Shell脚本执行不成功?原来是这样
Shell脚本语言是linux系统中内置的一门非常强大的语言,非常善于处理操作系统层面的应用,我们从网上下载的很多应用的安装和启动往往都是用Shell脚本语言写的.可是初步开始使用linux的小伙伴是 ...
- shell脚本执行及配置文件
linux之shell脚本执行及配置文件 bash脚本执行方法: 1 解释器直接运行/usr/bin/bash bash FOO.sh2 使用路径运行脚本(需要有x权限)chmod +x FOO.sh ...
最新文章
- [CentOS7] systemd
- 深度探秘 从 Auto Labeler 挖掘 Tesla 全自动驾驶的工作机制
- HUE 提交Schedule 时区问题
- Filebeat 将多个日志输出到不同的 Kafka Topic
- 分布式监控:Zabbix_sender介绍及配置
- 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_06 Properties集合_3_Properties集合中的方法load...
- Microsoft Access 查询
- matlab潮流计算仿真,MATLAB潮流计算仿真
- 详解今日头条技术架构分析
- 考勤系统与服务器链接,考勤机怎么连接服务器
- TwinCAT 3 基础——编程基础
- [博弈论]JZOJ 3339 wyl8899和法法塔的游戏
- 系统日志及数据库日志
- 循环神经网络LSTM论文解读
- 普通门禁卡及各类复制卡相关知识
- 未来机器视觉行业的发展趋势
- hp光影桌面怎样找此计算机,重装惠普光影精灵III代win7系统教程
- 货场RFID智能称重管理系统
- JAVA SE 是什么? 入门级讲解。
- 7-7 提取不重复的英文字母
热门文章
- VUE.JS 组件化开发实践
- 设置 shell 脚本中 echo 显示内容带颜色
- 解决: Cannot find module ‘webpack-cli/bin/config-yargs‘、Error: Cannot find module ‘webpack-cli‘
- git 查看远程仓库地址
- Docker Installation : Docker 中安装并启动 Kong
- 解决org.hibernate.loader.custom.NonUniqueDiscoveredSqlAliasException: Encountered a duplicated sql ...
- 前言_工作两年自我感触
- python爬虫学习之页面登陆
- Redis-ha(sentinel)搭建
- C#题目及答案(1)