
转载: 我最近经常使用Linux,我感到太累了,无法经常敲击键盘,因此想到了Shell脚本. 您可以在脚本中写入太多命令,以便每次执行sh文件时,可以节省键入键盘的时间并保护键盘!因此,我在Linux上搜索了Internet的一些脚本内容. Shell不仅是命令的集合,还是一种很棒的编程语言. 您可以使用外壳程序使大量任务自动化. Shell特别擅长于系统管理任务,特别是对于易用性,可维护性和可移植性比效率更为重要的任务. 现在我们开始编写Shell脚本: 1.程序必须以以下行开头(必须放在文件的第一行): #! / bin / sh符号#!用于告诉系统其背后的参数用于执行Document过程. 2.注释在shell编程中,以#开头的句子表示注释,直到行尾为止. 与其他编程语言一样,编写脚本时我们应尽可能添加注释,因此即使长时间不使用该脚本,我们也可以在短时间内了解该脚本的作用和工作原理. 3.变量您必须使用其他编程语言中的变量. 在Shell编程中,所有变量都由字符串组成,您无需声明变量. 要为变量分配值,您可以编写: 变量名称=值,以取出变量的值. 您可以在变量前面添加一个美元符号($): #! / bin / sh#为变量分配一个值: a =“ helloworld”#立即打印变量a的内容: echo“ Ais: ” echo $ a4.Shell命令和流控制. Shell脚本中可以使用三种类型的命令: 1)Unix命令: 尽管可以在Shell脚本中使用任意Unix命令,但是仍然存在一些相对更常用的命令.

这些命令通常用于文件和文本操作. 常用命令语法和函数echo“ sometext”: 在屏幕上打印文本内容ls: 文件列表wc–lfilewc-wfilewc-cfile: 计算文件中的行数计算文件中的字数计算中的字符数文件cpsourcefiledestfile: 文件复制mvoldnamenewname: 重命名文件或移动文件rmfile: 删除文件grep'pattern'file: 在文件中搜索字符串,例如grep'searchstring'file.txtcut-bcolnumfile: 指定要显示的文件内容范围,并将它们输出到标准输出设备示例: 输出每行的第5至9个字符cut-b5-9file.txt不能与cat命令混淆,这是两个完全不同的命令catfile.txt: 将文件内容输出到标准输出设备(屏幕)在filesomefile上: 获取文件类型readvar: 提示用户输入并将输入分配给变量sortfile.txt: 对file.txt文件中的行进行排序uniq: 删除出现在其中的行和列文本文件例如: sortfile.txt | uniqexpr: 执行数学运算示例: add2and3expr2“ +” 3查找: 搜索文件示例: 按文件名查找. -namefilename-printtee: 输出数据到标准输出设备(屏幕)和文件,例如: somecommand | teeoutfilebasenamefile: 返回不带路径的文件名. 例如: basename / bin / tux将返回tuxdirnamefile: 返回文件的路径. 示例: dirname / bin / tux将返回/ binheadfile: 打印文本文件tailfile的前几行: 打印文本文件的后几行. Sed: Sed是基本的查找和替换程序.

您可以从标准输入(例如命令管道)中读取文本,并将结果输出到标准输出(屏幕). 该命令使用正则表达式进行搜索(请参阅参考资料). 不要与外壳中的通配符混淆. 例如: 用LinuxFocus替换linuxfocus: cattext.file | sed的/ linuxfocus / LinuxFocus /'> newtext.fileawk: awk用于从文本文件中提取字段. 默认情况下,字段分隔符为空格. 您可以使用-F指定其他分隔符. catfile.txt | awk-F,'{print $ 1“,” $ 3}'在这里我们用作字段分隔符,并同时打印第一个和第三个字段. 如果文件的内容如下所示: 34岁,AdamBor,美国22岁,IndiaKerryMiller,命令输出为: AdamBor,印度,KerryMiller,美国2)概念: 管道,重定向和反引号这些不是系统命令,但它们确实很重要. 管道(|)将一个命令的输出作为另一命令的输入. grep“你好” file.txt | wc-l在file.txt中搜索包含“ hello”的行并计算行数. 在这里,grep命令的输出用作wc命令的输入. 当然,您可以使用多个命令.

重定向: 将命令结果输出到文件而不是标准输出(屏幕). >写入文件并覆盖旧文件>>添加到文件末尾,保留旧文件的内容. 反斜杠使用反斜杠将一个命令的输出作为另一命令的命令行参数. 命令: find. -mtime-1-typef-print用于查找过去24小时内已修改的文件(-mtime-2表示48小时). 如果要打包所有找到的文件linux shell 脚本编程linux shell 脚本编程,可以使用以下脚本: #! / Bin / sh#Theticksarebackticks(`)nonnormalquotes('): tar-zcvflastmod.tar.gz`find. -mtime-1- typef-print`3)流控制“如果”表达式如果条件为真,则执行之后的部分: 如果..;然后.... elif ....;然后.... else ... .fi在大多数情况下,您可以使用test命令测试条件. 例如,您可以比较字符串,确定文件是否存在以及可读性,等等. 通常使用“ []”表示条件测试. 请务必注意此处的空格. 确保方括号为空白. [-f“ somefile”]: 确定它是否是一个文件[-x“ / bin / ls”]: 确定/ bin / ls是否存在并具有可执行权限[-n“ $ var”]: 确定$ var变量is具有值[“ $ a” =“ $ b”]: 确定$ a和$ b是否相等. 5.执行脚本默认情况下,Linux下的sh文件具有执行权限. 我们可以使用以下命令: ls-lfile_name来查看用户对该文件的权限. 如果您没有执行权限,则可以执行以下命令来添加: chmod + xfile_name. 然后,您可以通过运行诸如shXX.sh之类的命令来运行脚本. 当然,不同的系统可能并不完全相同,需要基于实际情况. 例如,在Linux下,可以运行./XX.sh. ***** END *****


问题点: 点
->
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-145209-1.html
造谣
更环保
在中国出现这样的事真是平常而又平常的