今天小编就为大家分享一篇关于Linux shell脚本的建立与执行,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

pk10开奖结果在进行linux测试时编写脚本是必不可少的。最近经常使用Linux,感觉太频繁地敲击键盘有些累了,于是想到了Shell脚本。可以把太多的命令写成一个脚本,这样每次执行一遍  shell文件,就可以省去了敲击键盘的时间。于是在网上搜了一些有关Linux下脚本编程的内容。

Shell不仅仅是命令的收集,而且是一门非常棒的编程语言。您可以通过使用shell使大量的任务自动化,shell特别擅长系统管理任务,尤其适合那些易用性、可维护性和便携性比效率更重要的任务。

用户可以使用任何文本编辑器编辑shell脚本文件,例如VI、gedit等。

Shell脚本的名称可以随便定义,也不要什么后缀名,例如可以写abc,smartzip这类名称。

下面我们开始编写一个Shell脚本:

1. 程序必须以下面的行开始(必须放在文件的第一行):

#!/bin/sh

符号#!用来告诉系统它后面的参数是用来执行该文件的程序。在这个例子中我们使用/bin/sh来执行程序。

2. 注释

在进行shell编程时,以#开头的句子表示注释,直到这一行的结束。如同其他编程语言一样,我们在编写脚本时也应该尽可能地添加注释,那么即使相当长的时间内没有使用该脚本,我们也能在很短的时间内明白该脚本的作用及工作原理。

3. 变量

在其他编程语言中您必须使用变量。在shell编程中,所有的变量都由字符串组成,并且您不需要对变量进行声明。要赋值给一个变量,您可以这样写:变量名=值

取出变量值可以加一个美元符号($)在变量前面:

#!/bin/sh
#对变量赋值:
a="hello world"
# 现在打印变量a的内容:
echo "A is:"
echo $a

4. 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

pk10开奖结果在file.txt中搜索包含有”hello”的行并计算其行数。

pk10开奖结果在这里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执行命令文件中的命令。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对爱安网的支持。如果你想了解更多相关内容请查看下面相关链接

最新资讯
微信"一物一码"全面上线 商品成品牌小程序流量入口

微信"一物一码"全面

微信全面开放“一物一码”功能,借此,每件商品都变成品牌
风波未平 OYO放言砸重金力挽中国市场

风波未平 OYO放言砸重

经历了大规模裁员等一系列风波之后,OYO迫切的需要稳定
彭博:欧盟未来数日将对亚马逊展开正式反垄断调查

彭博:欧盟未来数日将对

欧盟反垄断专员去年9月曾表示,欧盟正在对亚马逊使用这
巨人变更重组方案:发行股份变为现金收购Playtika

巨人变更重组方案:发行

巨人网络今日发布公告,为加速交易进度、提高交易效率,公
长城汽车与华为阿里等战略合作 推智能网联汽车落地

长城汽车与华为阿里等

长城汽车近日宣布,与华为、高通以及BAT等八家企业签署
微信浮窗新增支持文件等形态 最多同时设置5个浮窗

微信浮窗新增支持文件

微信iOS7.0.5版本更新,此次更新对微信浮窗功能进行了升
最新文章
浅析Linux常用文件管理命令

浅析Linux常用文件管

这篇文章主要介绍了Linux常用文件管理命令,非常不错,具
linux命令查看磁盘空间的方法

linux命令查看磁盘空

这篇文章主要介绍了linux命令查看磁盘空间的方法,非常
linux shell常用循环与判断语句(for,while,until,if)使用方法

linux shell常用循环

这篇文章主要介绍了linux shell循环,判断介绍,以及实例
详解Linux中退出编辑模式的命令

详解Linux中退出编辑

这篇文章主要介绍了Linux中退出编辑模式的命令,本文给
shell脚本实现监控某个进程意外停止后拉起进程

shell脚本实现监控某

今天小编就为大家分享一篇关于shell脚本实现监控某个
Linux 中批量提取文件夹下所有目录及文件名称

Linux 中批量提取文件

这篇文章主要介绍了Linux 中批量提取文件夹下所有目录
pk10开奖结果pk10开奖结果_VDJOYW4 pk10开奖结果pk10开奖结果_qsbs9 pk10开奖结果_KJcFG pk10开奖结果_2xWw1 pk10开奖结果_JkVsz pk10开奖结果_W4bOi99 pk10开奖结果_PRHso2 pk10开奖结果_TB9uf4 pk10开奖结果_xKObS pk10开奖结果_aqYYdqF