shell脚本语法

合集下载

Shell脚本编写高级技巧使用find命令进行文件查找

Shell脚本编写高级技巧使用find命令进行文件查找

Shell脚本编写高级技巧使用find命令进行文件查找Shell脚本编写高级技巧:使用find命令进行文件查找Shell脚本是一种强大的工具,可以帮助我们自动化处理一系列的任务。

其中,使用find命令进行文件查找是Shell脚本中常用的技巧之一。

本文将介绍如何使用find命令进行文件查找,并分享一些高级技巧。

一、基本语法find命令的基本语法如下:```find [路径] [选项] [动作]```其中,路径表示要查找的目录,选项表示对查找进行过滤或控制,动作表示对查找结果进行进一步的操作。

二、基本用法1. 查找特定文件要查找特定类型的文件,可以使用如下命令:```find /path/to/search -name "*.txt"```上述命令将在`/path/to/search`路径下查找所有以`.txt`为扩展名的文件。

2. 查找特定目录要查找特定名称的目录,可以使用如下命令:```find /path/to/search -type d -name "dir_name"```上述命令将在`/path/to/search`路径下查找名为`dir_name`的目录。

3. 查找特定大小的文件要查找特定大小的文件,可以使用如下命令:```find /path/to/search -size +100M```上述命令将在`/path/to/search`路径下查找大于100MB的文件。

三、高级技巧1. 结合-exec参数执行命令使用`-exec`参数可以在找到匹配文件后执行特定的命令。

例如,要查找所有后缀名为`.log`的文件,并将它们复制到`/path/to/destination`目录下,可以使用如下命令:```find /path/to/search -name "*.log" -exec cp {} /path/to/destination \;```上述命令中的`{}`表示find命令找到的文件名,`\;`表示命令的结束。

shell脚本常用命令

shell脚本常用命令

shell脚本常⽤命令shell基本命令1.#!/bin/sh是指此脚本使⽤/bin/sh来解释执⾏。

解释:#! 是⼀个约定的标记,它告诉系统这个脚本需要什么解释器来执⾏,即使⽤哪⼀种 Shell。

2.echo 命令⽤于向窗⼝输出⽂本。

举例:echo "Hello World !"3.your_name="qinjx"赋值变量echo ${your_name}打印变量;使⽤变量的时候加括号和美元符4.chmod +x ./test.sh #使脚本具有执⾏权限./test.sh #执⾏脚本chmod 777 /tmp -R 意思是把tmp⽂件夹及其⼦bai⽂件夹的权限全部修改为777解释语句⼀:ping -c 5 > /dev/null 2>&11. ping -c 5 -c<完成次数>:设置完成要求回应的次数;2. >/dev/null这条命令的作⽤是将标准输出1重定向到/dev/null中。

/dev/null代表linux的空设备⽂件,所有往这个⽂件⾥⾯写⼊的内容都会丢失,俗称“⿊洞”。

那么执⾏了>/dev/null之后,标准输出就会不再存在,没有任何地⽅能够找到输出的内容。

3. 2>&1这条命令⽤到了重定向绑定,采⽤&可以将两个输出绑定在⼀起。

这条命令的作⽤是错误输出将和标准输出同⽤⼀个⽂件描述符,说⼈话就是错误输出将会和标准输出输出到同⼀个地⽅。

linux在执⾏shell命令之前,就会确定好所有的输⼊输出位置,并且从左到右依次执⾏重定向的命令,所以>/dev/null 2>&1的作⽤就是让标准输出重定向到/dev/null中(丢弃标准输出),然后错误输出由于重⽤了标准输出的描述符,所以错误输出也被定向到了/dev/null中,错误输出同样也被丢弃了。

执⾏了这条命令之后,该条shell命令将不会输出任何信息到控制台,也不会有任何信息输出到⽂件中。

简述运行shell script的方法。

简述运行shell script的方法。

简述运行shell script的方法。

运行shell script 的方法可以有多种,以下是几种常用的方法:
1. 在命令行执行脚本:可以直接在命令行终端输入脚本的路径,例如
/path/to/script.sh,按下回车键即可运行脚本。

2. 添加执行权限后直接执行:可以使用chmod 命令赋予脚本执行权限,例如chmod +x /path/to/script.sh,然后直接输入脚本路径运行即可。

3. 使用 . 命令运行脚本:可以使用 . 命令(点号)来运行脚本,例如 .
/path/to/script.sh,这种方式会在当前shell 中运行脚本,可以使用该脚本中的变量和别名。

4. 使用source 命令运行脚本:也可使用source 命令(或其简写命令 .),例如source /path/to/script.sh,与 . 命令类似,该命令会在当前shell 中运行脚本,也可以使用其中定义的变量和别名。

总之,这些都是使用shell 脚本的常用方法,可以根据实际需要选择适合自己的方式来运行脚本。

shell set语法

shell set语法

shell set语法Shell Set语法Shell是一种脚本语言,用于编写自动化任务和系统管理。

Shell Set 语法是一种命令行工具,可用于设置和修改环境变量、选项和参数。

在本文中,我们将深入探讨Shell Set语法的各个方面。

一、基本语法set命令用于设置shell变量和选项。

它有两种基本形式:1. set [选项] [参数]这种形式用于设置shell选项和位置参数。

例如:```$ set -x$ echo "Hello, world!"+ echo 'Hello, world!'Hello, world!```此示例将-x选项传递给set命令,以启用shell脚本的调试模式。

2. set 变量名=值这种形式用于设置环境变量。

例如:```$ set MY_VAR=hello$ echo $MY_VARhello```此示例将MY_VAR环境变量设置为“hello”。

二、常见选项set命令有许多可用选项,下面是一些常见的选项:1. -e该选项启用shell脚本的“严格模式”,当命令返回非零退出码时,脚本将立即停止执行并退出。

2. -u该选项使未定义的变量引发错误,并导致脚本停止执行。

3. -x该选项启用“调试模式”,在执行每个命令之前输出该命令。

4. -n该选项使脚本在不执行任何命令的情况下进行语法检查。

三、位置参数位置参数是指shell脚本中传递给脚本的参数。

例如,以下脚本接受两个参数:```#!/bin/bashecho "The first argument is $1"echo "The second argument is $2"```当您运行此脚本并传递两个参数时,它将输出:```$ ./script.sh hello worldThe first argument is helloThe second argument is world```set命令用于设置这些位置参数。

Mac终端Shell脚本编写技巧

Mac终端Shell脚本编写技巧

Mac终端Shell脚本编写技巧Shell脚本是一种用于自动化任务的编程语言,在Mac终端中使用Shell脚本可以方便地完成一系列任务,例如文件操作、系统管理、软件安装等。

本文将介绍一些Mac终端Shell脚本编写的技巧,帮助你更好地利用Shell脚本来提高工作效率。

一、脚本文件的创建与权限设置在Mac终端中创建一个Shell脚本文件非常简单,首先打开终端,然后通过以下命令创建一个新的脚本文件:```shelltouch script.sh```这里的script.sh是你自定义的脚本文件名。

创建完脚本文件后,可以通过以下命令给脚本文件添加执行权限:```shellchmod +x script.sh```这样就可以通过./script.sh来执行这个脚本文件了。

二、Shell脚本的基本语法Shell脚本使用一系列命令和控制结构来实现特定的功能。

以下是一些常用的Shell脚本语法:1. 变量的定义和使用在Shell脚本中,可以使用变量来存储数据,并在需要的时候进行调用。

变量的定义和使用可以通过以下语法实现:```shellname="John"echo $name```这里的name是一个变量,存储了"John"这个字符串。

通过echo命令可以打印出该变量的值。

2. 条件判断条件判断是Shell脚本中常用的控制结构之一,可以用于根据不同的条件执行不同的代码块。

以下是一个条件判断的示例:```shellif [ $age -gt 18 ]; thenecho "You are an adult."elseecho "You are a teenager."fi```这里的age是一个变量,根据其值的大小来判断是否成年。

3. 循环循环是Shell脚本中另一个常用的控制结构,可以用于重复执行某些代码块。

以下是一个循环的示例:```shellfor (( i=0; i<5; i++ )); doecho $idone```这个循环会打印出0到4这5个数字。

Shell脚本编写高级技巧使用for循环处理枚举数据

Shell脚本编写高级技巧使用for循环处理枚举数据

Shell脚本编写高级技巧使用for循环处理枚举数据Shell脚本编写高级技巧之使用for循环处理枚举数据在Shell脚本编写中,for循环是一种非常常见且重要的循环结构。

它能够帮助我们处理枚举数据,简化编程过程,提高代码的可读性和效率。

本文将分享一些使用for循环处理枚举数据的高级技巧,帮助读者在Shell脚本编写中更加得心应手。

一、基本语法在开始讨论高级技巧之前,我们先来回顾一下for循环的基本语法:```shellfor 变量 in 列表do命令done```其中,`变量`是用来存储列表中每个元素的临时变量,`列表`是需要枚举的数据集合。

循环体中的`命令`会针对列表中的每个元素执行一次。

二、遍历数字范围在Shell脚本编写中,我们经常需要对一定范围内的数字执行相同的操作。

使用for循环可以简洁地完成这一任务。

下面是一个示例:```shellfor i in {1..10}doecho $idone```上述代码将会输出从1到10的数字。

`{1..10}`表示一个包含1到10之间所有数字的范围。

每次循环中,`$i`代表范围中的一个数字,并通过`echo`命令输出。

三、遍历文件列表除了数字范围,我们还可以使用for循环来遍历一个目录中的文件列表。

下面是一个示例:```shellfor file in /path/to/directory/*doecho $filedone```上述代码中,`/path/to/directory/*`表示路径下所有的文件(不包括子目录)。

每次循环中,`$file`代表路径中的一个文件,并通过`echo`命令输出。

四、遍历数组如果我们需要处理一个数组中的每个元素,也可以借助for循环。

下面是一个示例:```shellarray=("apple" "banana" "cherry" "date")for fruit in "${array[@]}"doecho $fruitdone```上述代码中,`${array[@]}`表示数组中的所有元素。

shell 脚本(if test语句)

————————————————————————————————test 命令语法:test expression 或者[expression]test命令对表达式进行评估,并且设置返回值。

表达式的值返回值true0false非零(通常为1)test命令能够评估的对象有:整数字符串文件test命令被用来评估表达式并且产生返回值。

它用参数组成逻辑表达式并且对表达式进行评估。

test命令不会产生标准输出,你必须必须通过返回值来判断test命令的结果。

如果表达式为真,返回值会为0,如果表达式为假,返回值为1。

test命令可以被单独使用,然后你能够看到返回值,但它用的最多的还是在if和while结构中,用来提供条件流程控制。

test命令的也可以用[expression]来代替。

这对提高可读性有帮助,特别是在处理数字或者字符串的时候。

注意:在"["和"]"符号的周围必须要有空格。

test命令之数字test语法:[ number relation number ]通过关系运算符来对数字进行比较关系运算符:-lt 小于-le 小于或者等于-gt大于-ge 大于或者等于-eq 等于-ne 不等于例子(假设X=3):$ [ "$X" -lt 7]$ [ "$X" -gt 7]$ echo $? $ echo $?0 1test命令能被用于比较两个整数之间的数字关系。

通常用[.....]语法来调用。

test命令的返回值就能说明这个条件为真还是为假。

当testing一个变量的值的时候,你应该防止变量不要为空值,例如:$ [ $XX -eq 3]sh: test:argument expected如果变量XX在前面没有被赋值,XX的值会是NULL。

当shell执行变量替代的时候,shell会试图执行如下语句:[ -eg 3]而这个语句不是一个完整的test语句,并且会导致一个语法错误。

shell脚本中的4种循环语句使用

shell脚本中的4种循环语句使⽤1、for循环#语法结构#第⼀种:取值变量for变量名in变量取值表do指令done#例⼦:#⽰例for a in {1..9}domkdir dir$adone#第⼆种:C语⾔型for循环for ((exp1; exp2; exp3))do指令done#例⼦:#⽰例for ((i=1;i<=3;i++))doecho $idone#解释:i从1开始,当i<=3就可以运⾏,如果运⾏的值⼤于3,就退出循环#语法结构讲解for关键字后的双括号是三个表达式,第⼀个是变量初始化(例如:i=1),第⼆个为变量的范围(例如i<=3),第三个为变量⾃增或⾃减(例如i++)。

当第⼀个表达式的初始化值符合第⼆个变量的范围时,就进⾏如循环执⾏,当条件不满⾜时就退出循环#简单⽰例#1.竖向打印10 9 8 7 6 5⼏个数字#第⼀种⽅法:直接列出元素[root@game scripts]# cat for1.sh#!/bin/bashfor i in12345doecho $idone#效果[root@game scripts]# sh for1.sh12345第⼆种⽅法:使⽤⼤括号{}⽣成数字序列[root@game scripts]# cat for2.sh#!/bin/bashfor i in {1..5}doecho $idone#效果[root@game scripts]# sh for2.sh12345#第三种⽅法:使⽤seq⽣成数字序列[root@game scripts]# cat for3.sh#!/bin/bashfor i in `seq 15`doecho $idone#效果[root@game scripts]# sh for3.sh12345#2.获取当前⽬录下的⽬录或⽂件名,并将其作为变量列表打印输出#数据[root@game ~]# mkdir -p /test/{test1.txt,test2.txt,guo.txt,ke.txt}[root@game ~]# ls -l /test/total 0drwxr-xr-x. 2 root root 6 Aug 2122:14 guo.txtdrwxr-xr-x. 2 root root 6 Aug 2122:14 ke.txtdrwxr-xr-x. 2 root root 6 Aug 2122:14 test1.txtdrwxr-xr-x. 2 root root 6 Aug 2122:14 test2.txt#编写脚本[root@game scripts]# cat for4.sh#!/bin/bashusage(){echo "directory not found"}[ ! -d /test ] && usage && exit 1cd /testfor i in `ls`doecho $idone#效果[root@game scripts]# sh for4.shguo.txtke.txttest1.txttest2.txt2、while循环#while循环⼀般应⽤于守护进程程序或⼀直循环执⾏#语法格式while <条件表达式>do指令done#简单⽰例每隔2秒在屏幕上输出⼀次负载值[root@game scripts]# cat while1.shwhile truedouptimesleep 2 #暂停2秒再执⾏done#提⽰:while true表⽰条件永远为真,因此会⼀直运⾏,像死循环⼀样,称为守护进程#效果:每隔2秒就输出⼀次[root@game scripts]# sh while1.sh23:11:35 up 2 days, 2:00, 2 users, load average: 0.00, 0.01, 0.0523:11:37 up 2 days, 2:00, 2 users, load average: 0.00, 0.01, 0.0523:11:39 up 2 days, 2:00, 2 users, load average: 0.00, 0.01, 0.053、until循环#until循环是当条件表达式不成⽴时,就会进⼊循环,当条件表达式成⽴时,就会终⽌循环#语法格式until <条件表达式>do指令done#⽰例#如果⽤户输出的是guoke就符合条件,退出循环,如果不是,⽤户输⼊3次之后就退出循环[root@game scripts]# cat until1.sh#!/bin/bashi=1until [ "$user" = "guoke" -o "$i" -gt 3 ]doread -p "please enter you username:" userlet i++done#效果[root@game scripts]# sh until1.shplease enter you username:guoke[root@game scripts]# sh until1.shplease enter you username:1please enter you username:1please enter you username:1[root@game scripts]#4、select循环#语法格式select变量名in [菜单取值列表]do指令done#⽰例#第⼀种:直接使⽤列表字符串[root@game scripts]# cat select1.sh#!/bin/bashselect name in apache httpd nginx tomcatdoecho $namedone#效果[root@game scripts]# sh select1.sh1) apache2) httpd3) nginx4) tomcat#? 1#? 3nginx#? 4tomcat#? ^C#第⼆种:采⽤数组做变量列表[root@game scripts]# cat select2.sh#!/bin/basharray=(apache nginx tomcat lighttpd)select name in"${array[@]}"doecho $namedone#效果[root@game scripts]# sh select2.sh1) apache2) nginx3) tomcat4) lighttpd#? 3tomcat#? 4lighttpd#? ^C5.循环控制及状态返回值break (循环控制)continue (循环控制)exit (退出脚本)return (退出函数)#区别break continue在条件语句及循环语句(for if while等)中⽤于控制程序的⾛向exit是终⽌所有语句并退出脚本return:仅⽤于在函数内部返回函数执⾏的状态值#break⽰例#如果i等于3,那么就终⽌循环[root@game scripts]# cat break1.sh#!/bin/bashfor ((i=0;i<=5;i++))doif [ $i -eq 3 ];thenbreakelseecho $ifidoneecho "1111"yum install net-tools -y > /dev/null[ $? -eq 0 ] && echo "already install"#效果[root@game scripts]# sh break1.sh121111already install#说明:i等于3的时候就终⽌循环,但是没有跳出脚本#exit⽰例[root@game scripts]# cat exit1.sh#!/bin/bashfor ((i=0;i<=5;i++))doif [ $i -eq 3 ];thenexit 1fiecho $idoneecho "ok"#执⾏效果[root@game scripts]# sh exit1.sh12#说明:当i等于3的时候就会退出脚本了,就不会执⾏后⾯的语句#continue⽰例[root@game scripts]# cat con1.sh#!/bin/bashfor ((i=0;i<=5;i++))doif [ $i -eq 3 ];thencontinueelseecho $ifidoneecho "ok"#执⾏效果[root@game scripts]# sh con1.sh。

使用shell脚本进行文本处理和解析

使用shell脚本进行文本处理和解析Shell脚本是一种强大的工具,可以帮助开发人员和系统管理员自动化任务,其中包括文本处理和解析。

通过编写Shell脚本,可以按照自己的需求对文本进行处理,提取所需信息并进行分析。

本文将介绍使用Shell脚本进行文本处理和解析的方法和技巧。

一、Shell脚本简介Shell脚本是一种编程语言,用于在操作系统的命令行环境中执行一系列命令和操作。

它为用户提供了一种简单且灵活的方法来自动化任务、处理数据和解析文本。

1.1 Shell脚本的基本语法Shell脚本主要由一系列命令组成,可以在终端中直接执行。

它支持变量、条件语句、循环语句和函数等基本的编程结构,可以根据需求进行程序的编写和执行。

1.2 Shell脚本的文件扩展名Shell脚本的文件通常使用.sh为扩展名,以示区别于其他类型的文件。

这样可以方便地识别和执行脚本。

二、使用Shell脚本进行文本处理2.1 文本处理的常用命令Shell脚本提供了许多用于文本处理的常用命令,例如grep、sed和awk等。

这些命令可以帮助我们在文本中搜索、替换、提取和分析数据。

- grep命令:用于在文本中搜索指定的模式,并返回匹配的行。

它支持正则表达式,可以根据不同的模式进行搜索。

- sed命令:用于对文本进行替换、删除和插入操作。

它可以根据指定的模式进行操作,也可以在整个文本中进行全局操作。

- awk命令:用于以行为单位对文本进行处理和解析。

它可以根据列进行操作,并支持条件语句和循环语句等高级功能。

2.2 示例:文件中关键词的提取和统计下面是一个示例,演示了如何使用Shell脚本从文件中提取关键词并统计出现的次数。

```shell#!/bin/bash# 定义文件路径file_path="example.txt"# 统计关键词的函数count_keywords() {while read line; do# 使用grep命令匹配关键词,并计数count=$(echo "${line}" | grep -o -i "keyword" | wc -l)echo "关键词出现的次数:${count}"done < "${file_path}"}# 调用函数count_keywords```上述示例中,首先定义了要处理的文件路径。

如何在Shell脚本中实现循环

如何在Shell脚本中实现循环Shell脚本是一种在Unix或Linux系统中批量执行命令的脚本语言。

循环是Shell脚本中非常常用的一种控制结构,可以帮助我们重复执行一段代码块。

本文将介绍如何在Shell脚本中实现循环,包括for循环、while循环和until循环。

一、for循环for循环是一种在Shell脚本中用于遍历列表或序列的循环结构。

以下是for循环的基本语法:```shellfor 变量 in 列表do命令done```其中,变量表示用于遍历列表的变量名,列表是一组用空格分隔的值或通配符。

循环会依次将列表中的值赋给变量,并执行循环体中的命令。

示例:计算1到10的和。

```shellfor i in 1 2 3 4 5 6 7 8 9 10dosum=$((sum + i))doneecho "1到10的和为:$sum"```二、while循环while循环是一种在Shell脚本中用于根据条件来循环执行一段代码块的结构。

以下是while循环的基本语法:```shellwhile 条件do命令done```其中,条件是一个用于判断循环是否继续执行的表达式。

只有当条件为真时,循环体中的命令才会执行。

示例:计算1到10的和。

sum=0i=1while [ $i -le 10 ]dosum=$((sum + i))i=$((i + 1))doneecho "1到10的和为:$sum"```三、until循环until循环与while循环类似,不同之处在于条件是一个判断为假时执行循环体的表达式。

以下是until循环的基本语法:```shelluntil 条件do命令done```其中,条件是一个用于判断循环是否继续执行的表达式。

只有当条件为假时,循环体中的命令才会执行。

示例:计算1到10的和。

```shellsum=0i=1until [ $i -gt 10 ]dosum=$((sum + i))i=$((i + 1))doneecho "1到10的和为:$sum"```通过以上示例,我们可以看到如何在Shell脚本中实现循环。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
-ge:大于等于
-lt:小于
-le:小于等于
let a=1000
let b=400
文件比较运算符
-e filename如果filename存在,则为真[ -e /var/log/syslog ]
-d filename如果filename为目录,则为真[ -d /tmp/mydir ]
-f filename如果filename为常规文件,则为真[ -f /usr/bin/grep ]
1一次显示整个文件。
cat filename
2.从键盘创建一个文件。
cat > filename
只能创建新文件,不能编辑已有文件.ctrl+c完成文件的创建。
3.将几个文件合并为一个文件。
cat file1 file2 > file
关于引号的问题:
“”----弱引用:“$var”,var将被求值 。(同$var是一个效果,都会使shell求出var的值)
字符串比较运算符(请注意引号的使用,这是防止空格扰乱代码的好方法)
-z string如果string长度为零,则为真[ -z "$myvar" ]
-n string如果string长度非零,则为真[ -n "$myvar" ]
string1 = string2如果string1与string2相同,则为真[ "$myvar" = "one two three" ]
string1 != string2如果string1与string2不同,则为真[ "$myvar" != "one two three" ]
if [ $a -gt $b ]
注意空格【】也需要空出来
貌似除了=号不需要
3.if语句
if [ "22" -lt "33" ] then //注意空格
echo "22 less than 33"
filename1 -nt filename2如果filename1比filename2新,则为真[ /tmp/install/etc/services -nt /etc/services ]
filename1 -ot filename2如果filename1比filename2旧,则为真[ /boot/bzImage -ot arch/i386/boot/bzImage ]
[3-9])
echo "you number is $ans"
;;
*) //*通配符
echo "others"
esac
3.while语句
while [ ....]
do
....
done
4.forin循环
for friend in xdw xdw2
do
...
done
另外使用break跳出循环
使用cotinue到达循环的开始
仅创建变量的程序能使用的变量是时局部变量
export varname2
保留字export使得变量可由环境存取。即这个变量可以和系统中的其他程序共享。
????这里不会
3.变量赋值,引用变量时前面要加" $ "
将数值赋给变量,可以不声明变量直接赋值如
let var=1000
*注意:等号两端不能有空格
let后面不加&号???待
ehco $HOME //$符号是获得变量HOME的值
系统变量:
$0这个程序的执行名字
$n这个程序的第n个参数值,n=1...9
$*这个程序的所有参数
$#这个程序的参数个数
$$这个程序的PID
$!执行上一个背景指令的PID
$?上一个指令的返回值
4环境变量
由export关键字处理过的变量叫做环境变量。我们不对环境变量进行讨论,因为通常情况下仅仅在登录脚本中使用环境变量。
else
echo "no"
fie:把保留字case右边的值和比括号左边的值比较
case $varname in
value1) //数字判断直接是1)字符串判断写“1”)
.......
;; //!!两个分号不能省略,作为一种情况的结束。
value2)
.....
-L filename如果filename为符号链接,则为真[ -L /usr/bin/grep ]
-r filename如果filename可读,则为真[ -r /var/log/syslog ]
-w filename如果filename可写,则为真[ -w /var/mytmp.txt ]
-x filename如果filename可执行,则为真[ -L /usr/bin/grep
函数体外$?表示上一个函数返回的返回值
五:用户交互
1、clear是清屏
2.readvarname
将键盘输入的内容保存到变量varname中,默认为字符串。
3.数据正常时流向屏幕,显示在屏幕上。改变数据的正常流向,将其流向其他地方,比如文件中。这个过程叫重定向。
标准输入:键盘
标准输出:屏幕
从文件获取内容也叫重定向。<
三:运算符
1.linux有三类运算符:
算术运算符:+ -* / %
逻辑运算符:!&& ||
比较运算符
算术运算符:
let sum=“$a + $b"
注意:等号两边没空格加号两边有空格。且有关键字let不然sum是字符算100 + 200的形式。
逻辑运算符:
比较运算符:
-eq:等于
-ne:不等于
-gt:大于
脚本的后缀还是写 .sh 虽然不是必须,但一眼看见易于知晓是脚本
shell简单的说就是一个命令解释器,用于用户和linux内核的沟通。
shell中所执行的命令相当于fork出的子进程一样。
建立脚本。
#!/bin/bash符号#!用来告诉系统它后面的参数是用来执行该文件的程序,bash脚本第一句都是这个,他会让系统指定以bash来解释这个脚本
;;
*) //相当于default:默认执行的
....
esac
echo "enter a number"
read ans //读取一个变量read
case $ans in
1)
echo "you numer is $ans"
;; //注意符号是两个;
2)
echo "you number is 2"
;;
‘ ’-----强引用:‘$var’,var将不被求值
% color=blue
% echo $color
blue
% echo '$color'
$color
% echo "$color"
blue
6.bash中几种循环
6.1. for name [ in word ] ; do list ; done
6.2. for (( expr1 ; expr2 ; expr3 )) ; do list ; done //注意有2层括号
6.3 while [expr] do list; done
其中list简单说就是一串由操作符(operator;、&、&&、||)
Xxxx //脚本内容
chmod 777 file之后就可以执行了
1.基础
# //shell脚本注释符号
二:变量
1.变量种类:
linux下变量类型只有两种
数字型和字符串型
2.声明变量
declare varname
声明一个局部变量varname,也可以一次声明多个同类型的变量
declare var1 var2 var3
let x=x+1
done
echo $sum
4.函数
函数定义格式
function functionname
{
command;
command;
}
函数内部$1表示传入的第一个参数,$2表示传入的第二个参数
使用参数之前要先验证传入参数的个数正确与否
$#表示传入参数个数的总数。
函数内部return数字作为返回值
echo “hello,xdw”将正常输出到屏幕上。
echo “hello,world" > xdw.dat
大于号(>)将内容输出到xdw.dat这个文件中去。
1.若文件不存在,则创建一个新的文件。
2.若文件存在,则替换掉文件的原有内容。
echo ”hello ,xdw" >>xdw.dat
双大于号将内容输出到xdw.dat这个文件中,但是是将内容添加到文件的末尾,而不清除原有数据。
比如i++:
delcare i=1
let i=”$i+1"
将字符串赋给变量
必须先声明变量,且赋值在同一条语句,赋的值必须用双引号引起
declarevar="100-100-100"
echo $var
HOME="/home" //注意赋值不要有空格
HOME_LIST=$(ls /home) //把命令的执行结果赋值给变量
分各给出一个简单例子:
1.
for filename in $(ls)
do
cat $filename
done
2.
for((i=0; i<10; i++))
相关文档
最新文档