返回顶部
首页 > 资讯 > 操作系统 >Linux shell脚本的建立与执行
  • 241
分享到

Linux shell脚本的建立与执行

linuxshell脚本linuxshell脚本的建立与执行 2022-06-04 22:06:24 241人浏览 泡泡鱼
摘要

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

在进行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

在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执行命令文件中的命令。

总结

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

--结束END--

本文标题: Linux shell脚本的建立与执行

本文链接: https://lsjlt.com/news/20158.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Linux shell脚本的建立与执行
    在进行linux测试时编写脚本是必不可少的。最近经常使用Linux,感觉太频繁地敲击键盘有些累了,于是想到了Shell脚本。可以把太多的命令写成一个脚本,这样每次执行一遍  shell文件,就可以省去了敲击键盘...
    99+
    2022-06-04
    linux shell脚本 linux shell脚本的建立与执行
  • 怎么在Linux中建立shell脚本
    今天就跟大家聊聊有关怎么在Linux中建立shell脚本,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1. 程序必须以下面的行开始(必须放在文件的第一行):#!/bin/sh符号#!...
    99+
    2023-06-09
  • Linux系统怎么执行Shell脚本
    小编给大家分享一下Linux系统怎么执行Shell脚本,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1)bash script-name或者sh script-n...
    99+
    2023-06-28
  • Linux下使用shell脚本自动执行脚本文件
    以下实例本人在Centos6.5 64位操作系统中使用 一、定时复制文件   a、在/usr/local/wfjb_web_back目录下创建 tomcatBack.sh文件   文件内容: #将to...
    99+
    2022-06-04
    脚本 文件 Linux
  • linux怎么编写和执行shell脚本
    编写和执行Shell脚本的步骤如下:1. 打开一个文本编辑器,比如使用vi或者nano。2. 在第一行添加shebang,指定要使用...
    99+
    2023-09-22
    linux shell
  • ansible执行shell脚本的方法
    1. 编写脚本:pb_shell.sh wfq@ubuntu:~/playbook$ cat pb_shell.sh #!bin/sh echo "today(`date`) is a nice day, sinc...
    99+
    2022-06-04
    ansible执行shell脚本
  • Linux中执行shell脚本的方法有哪些
    本篇内容介绍了“Linux中执行shell脚本的方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!bash shell 脚本的方法有多...
    99+
    2023-06-09
  • Linux中Shell脚本执行超时如何解决
    这期内容当中小编将会给大家带来有关Linux中Shell脚本执行超时如何解决,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。在shell里会有一种不太常见的情况,就是脚本有时候会出现超时的现象。一般来说遇到...
    99+
    2023-06-16
  • Linux下如何添加shell脚本执行权限
    这篇文章主要为大家展示了“Linux下如何添加shell脚本执行权限”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux下如何添加shell脚本执行权限”这篇文章吧。创建脚本文件第一步是使用...
    99+
    2023-06-27
  • shell脚本4种执行方式
    linux中shell脚本的执行通常有4种方式,分别为工作目录执行,绝对路径执行,sh执行,shell环境执行。 首先,看下我们的脚本内容 [tan@tan scripts]$ ll total 4 -rw-rw-r...
    99+
    2022-06-04
    shell 脚本执行方式
  • nodejs脚本中执行shell命令
    nodejs脚本中执行shell命令 官方文档一:exec 方法执行shell命令1. _注意:2. _优点特性:3. _语法格式:4. _option对象属性:5. _示例: 二:spa...
    99+
    2023-08-31
    linux unix 服务器
  • 怎么在Linux中使用shell脚本自动执行脚本文件
    本篇文章为大家展示了怎么在Linux中使用shell脚本自动执行脚本文件,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一、定时复制文件  a、在/usr/local/wfjb_web_back目录下...
    99+
    2023-06-09
  • node.js在Linux下执行shell命令、.sh脚本的问题
    首先,引入子进程模块 var process = require('child_process'); 执行shell命令 调用该模块暴露出来的方法exec process.exec(...
    99+
    2024-04-02
  • shell脚本怎么异步并行执行
    在shell脚本中,可以使用以下几种方式来实现异步并行执行:1. 后台执行:在命令后面加上`&`,可以将命令放到后台执行。例如:``...
    99+
    2023-09-22
    shell
  • shell脚本的执行方式有哪些
    今天就跟大家聊聊有关shell脚本的执行方式有哪些,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。首先,看下我们的脚本内容[tan@tan scripts]$ ll...
    99+
    2023-06-09
  • Linux如何执行shell脚本完成任务计划
    小编给大家分享一下Linux如何执行shell脚本完成任务计划,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!导读众所周知,当前linux跑任务计划我们一般借助于crontab任务计划来实现。但这个任务计划默认最小单位为分钟...
    99+
    2023-06-05
  • shell脚本实现监控shell脚本的执行流程及变量的值
    很多时候,我们都会写shell程序来完成一些不用重复造轮子的时刻,但是,又因为shell语句中也会有函数,也会有变量,在运行后到底执行了哪些相关的操作,就需要对具体执行过程中的变量等可变的因素的监控,那么我...
    99+
    2022-06-04
    脚本 变量 流程
  • 怎么用命令执行Shell脚本
    本篇内容主要讲解“怎么用命令执行Shell脚本”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用命令执行Shell脚本”吧!假设这个 shell 脚本的名称为 tinyshell.sh。在 L...
    99+
    2023-06-09
  • 怎么使用nohup执行shell脚本
    要使用nohup执行shell脚本,可以按照以下步骤操作:1. 打开终端或命令行界面。2. 输入以下命令格式:```nohup sh...
    99+
    2023-09-22
    nohup shell
  • 怎么用ansible playbook执行shell脚本
    使用Ansible playbook执行shell脚本可以通过以下步骤实现: 创建一个YAML文件,作为Ansible playb...
    99+
    2023-10-24
    ansible playbook shell
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作