深圳做响应式网站制作上海网站推广网络公司
深圳做响应式网站制作,上海网站推广网络公司,网站建设看什么书,提供信息门户网站搭建在进行linux测试时编写脚本是必不可少的。最近经常使用Linux#xff0c;感觉太频繁地敲击键盘有些累了#xff0c;于是想到了Shell脚本。可以把太多的命令写成一个脚本#xff0c;这样每次执行一遍 shell文件#xff0c;就可以省去了敲击键盘的时间。于是在网上搜了一些有…在进行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: 在文件内搜索字符串比如grepsearchstring file.txtcut -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 | uniqexpr: 进行数学运算Example: add 2 and 3expr 2 3find: 搜索文件比如根据文件名搜索find . -name filename -printtee: 将数据输出到标准输出设备(屏幕) 和文件比如somecommand | tee outfilebasename file: 返回不包含路径的文件名比如 basename /bin/tux将返回 tuxdirname file: 返回文件所在路径比如dirname /bin/tux将返回/binhead 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
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/89735.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!