Shell编程基础
为什么要进行shell编程 Linux系统中虽然有各种各样的图形界面工具,但shell仍然是一个非常灵活的工具。
Shell不仅集合了大量命令,还是一门非常棒的编程语言。
借助shell,大量任务能实现自动化;shell特别擅长系统管理任务,尤其适合那些易用性、可维护性和便携性比效率更重要的任务。
下面,让我们一起来看看shell是如何工作的:建立一个脚本 Linux中有许多种不同的shell,通常我们使用bash (bourne again shell) 进行shell编程因为bash不仅免费(自由)且易于使用。
本文提供的脚本都用bash(当然大多数情况下,这些脚本同样可以在bash的前辈, bourne shell中运行)执行。
如同其他语言一样,我们可以使用任意一种文字编辑器,比如nedit、kedit、emacs、vi 等来编写shell脚本,它必须以如下行开始(必须放在文件的第一行):代码:#!/bin/bash 符号#!用来告诉系统执行该脚本的程序,本例使用/bin/sh。
编辑完了,如果要执行该脚本,还必须使其可执行:代码:chmod +x filename 这样输入 ./filename 便可执行该脚本。
注释 shell脚本中以# 开始的行表示注释,直到一行的结束。
我们真诚的建议你在脚本中使用注释,这样即便在相当长时间内没有使用该脚本,你也能在短时间内明白该脚本的作用和工作原理;此外还有很重要的原因——有了注释,更利于和别人分享你的脚本。
变量 在其它编程语言中,你必须使用变量。
shell编程中,所有变量都由字符串组成,并且不需要声明。
要给一个变量赋值,你可以这么写:代码:变量名=值 在变量名之前加一个$,就可以取出变量值:代码:#!/bin/sh#对变量赋值:a="hello world"# 打印变量a的值:echo "A is:" $a 挑个自己喜欢的编辑器,输入以上内容,并保存为文件first,然后执行 chmod +x first 使其可执行,最后输入 ./first 执行该脚本。
其输出结果如下:引用:A is: hello world 有时候变量名可能会和其它文字混淆,比如:代码:num=2echo "this is the $numnd" 上述脚本并不会输出"this is the 2nd",只会打印"this is the ";这是由于shell会去搜索变量numnd的值,而实际上这个变量此时并没有值。
可以使用花括号来告诉shell我们要打印的是num变量:代码:num=2echo "this is the ${num}nd" 上述脚本的输出结果为: this is the 2nd 有许多变量是系统自动设定的,在后面用到这些变量时我们再作说明。
如果你需要处理数学表达式,那么得借助诸如 expr 的程序。
除了仅在脚本内有效的普通shell变量外,还有环境变量,即那些由export关键字处理过的变量。
本文不讨论环境变量,因为一般只在登录脚本中使用环境变量。
Shell命令和流程控制 在shell脚本中可以使用三类命令:1) Unix 命令: 在shell脚本中可以使用任意unix命令,不过实际上最为常用的通常是那些文件和文字操作相关的命令。
下面介绍一些常用命令语法及功能: echo "some text": 在屏幕上输出信息 ls: 文件列表 wc –l file wc -w file wc -c file: 分别计算文件的行数(line)、单词数(word)和字符数(character) cp sourcefile destfile: 文件拷贝 mv oldname newname : 重命名文件或移动文件 rm file: 删除文件 grep 'pattern' file: 在文件内搜索字符串或和正则表达式匹配的字符串 cut -b column file: 将指定范围内的文件内容输出到标准输出设备(屏幕)上。
比如:输出每行第5至9个字符 cut -b5-9 file.txt,注意不要和cat命令混淆,这是两个完全不同的命令 cat file.txt: 输出文件内容到标准输出设备(屏幕)上 file somefile: 取得文件somefile的文件类型 read var: 提示用户输入,并将输入内容赋值给变量var sort file.txt: 对file.txt文件所有行进行排序 uniq: 只输出文件中内容不一致的行,如: sort file.txt | uniq expr: 进行数学运算,如要进行2+3的运算,命令为: expr 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中的通配符相混淆。
比如将ubuntu替换为Ubuntu:cat text.file | sed 's/ubuntu/Ubuntu/' > newtext.file awk: awk 用来提取文本文件中的字段。
缺省的字段分割符是空格,可以使用 -F 指定其它分割符。
cat file.txt | awk -F, '{print $1 "," $3 }',这里我们使用 , 作为字段分割符,同时打印第一和第三个字段。
如果该文件内容为 Adam Bor, 34, IndiaKerry Miller, 22, USA,则上述命令的输出为:Adam Bor, IndiaKerry Miller, USA2) 概念: 管道, 重定向和 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是否相等 执行man test可以查看所有测试表达式可以比较和判断的类型。
直接执行以下脚本:代码:#!/bin/shif [ "$SHELL" = "/bin/bash" ]; then echo "your login shell is the bash (bourne again shell)"else echo "your login shell is not bash but $SHELL"fi 变量$SHELL包含了登录shell的名称,我们拿它和/bin/bash进行比较。
快捷操作符 熟悉C语言的朋友可能会很喜欢下面的表达式:代码:[ -f "/etc/shadow" ] && echo "This computer uses shadow passwors" 这里的 && 就是一个快捷操作符,如果左边的表达式为真则执行右边的语句。
你也可以把它看作逻辑运算的与操作。
上述脚本表示如果/etc/shadow文件存在,则打印”This computer uses shadow passwors”。
同样或操作(||)在shell编程中也可以用,例如:代码:#!/bin/shmailfolder=/var/spool/mail/james[ -r "$mailfolder" ] || { echo "Can not read $mailfolder" ; exit 1; }echo "$mailfolder has mail from:"grep "^From " $mailfolder 该脚本首先判断mailfolder是否可读,如果可读则打印该文件中的"From" 一行。
如果不可读则或操作生效,打印错误信息后脚本退出。
shell函数参数传递详解
shell函数参数传递详解摘要:一、shell编程基础二、函数定义与调用三、参数传递方式四、实战案例解析正文:一、shell编程基础Shell是一种命令行解释器,主要用于执行脚本程序。
它基于Unix操作系统,可以理解为一种简化的、面向任务的编程语言。
在shell编程中,我们可以使用脚本文件来实现各种功能,如文件操作、系统管理等。
本文将重点介绍shell函数参数传递的相关知识,帮助大家更好地掌握shell编程。
二、函数定义与调用在shell脚本中,函数是一种组织代码的方式,它可以将一系列相关操作组合在一起,提高代码的可读性和可维护性。
函数的定义和使用类似于其他编程语言,如Python、Java等。
函数定义:使用`function`关键字,followed by 函数名、括号和括号内的参数列表。
例如:```bashfunction my_function() {echo "Hello, $1!"}```函数调用:使用函数名,可以带参数,也可以不带参数。
例如:```bashmy_function "World"```三、参数传递方式在shell脚本中,函数参数的传递主要有以下几种方式:1.位置参数:根据参数在函数定义中的位置来传递。
如:```bashfunction my_function() {echo "Hello, $1!"echo "Hello, $2!"}my_function "World" "Linux"```2.命名参数:通过为参数指定名称来传递。
如:```bashfunction my_function() {echo "Hello, $1!"echo "Hello, $2!"}my_function "World" "Linux" "Unix"```3.关联参数:通过关联数组传递。
linux操作系统任务十shell 编程基础
不被引号包围的字符串中出现变量时也会被解析,这一点和双引号" 不被引号包围的字符串 "包围的字符串一样。字符串中不能出现空格,否则空格后边的字符
串会作为其他变量或者命令解析。
管道操作
Shell数组中可以存放多个值。Bash Shell 只支持一维数组,初始化时不 需要定义数组大小。在 Shell 中用括号( )来表示数组,数组元素之间用空 格来分隔。定义数组的一般形式如下: Array_name=(ele1 ele2 ele3... eleN)
创建shell脚本
可以在Shell脚本中创建用户自定义变量,用户变量可以存储临时数据 并在整个脚本中使用,类似于程序语言中的变量。变量命名规则如下 :
1.任意字母数字或下划线,长度不超过20个,不能以数字开头; 2.用户变量区分大小写; 3.使用=赋值,变量、=、值之间不能有空格;
创建shell脚本
引用变量的时候一定要在前面加 $,对变量赋值的时候,被赋值的变量不需要 加 $。 有时候用户需存储某个命令的输出信息,可以把命令的输出赋值给变量,赋值 规则有两种: 1.`命令` ,`是反引号,不是引号。 2.$(命令)
例: LS=`ls` echo $LS echo "===================================" LSL=$(ls -l) echo $LSL
$a -ne $b
检测左边的数是否大于右边的,如果是返回 true。 $a -gt $b
检测左边的数是否小于右边的,如果是返回 true。 $a -lt $b
检测左边的数是否大于等于右边的,如果是返回 true。
检测左边的数是否小于等于右边的,如果是返回 true。
$a -ge $b [ $a -le $b ]
Shell脚本编写基础
Shell本身是一个用C语言编写的程序,它是用户使用Linux的桥梁。
Shell既是一种命令语言,又是一种程序设计语言。
作为命令语言,它交互式地解释和执行用户输入的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。
它虽然不是Linux系统核心的一部分,但它调用了系统核心的大部分功能来执行程序、建立文件并以并行的方式协调各个程序的运行。
因此,对于用户来说,shell 是最重要的实用程序,深入了解和熟练掌握shell的特性极其使用方法,是用好Linux系统的关键。
可以说,shell使用的熟练程度反映了用户对Linux使用的熟练程度。
一、什么是shell当一个用户登录Linux系统之后,系统初始化程序init就为每一个用户运行一个称为shel l(外壳)的程序。
那么,shell是什么呢?确切一点说,shell就是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用shell 来启动、挂起、停止甚至是编写一些程序。
当用户使用Linux时是通过命令来完成所需工作的。
一个命令就是用户和shell之间对话的一个基本单位,它是由多个字符组成并以换行结束的字符串。
shell解释用户输入的命令,就象DOS里的所做的一样,所不同的是,在DOS中,只有一个,而在Linux下比较流行的shell有好几个,每个shell都各有千秋。
一般的Linux系统都将bash作为默认的shell。
二、几种流行的shell目前流行的shell有ash、bash、ksh、csh、zsh等,你可以用下面的命令来查看你自己的shell类型:#echo $SHELL$SHELL是一个环境变量,它记录用户所使用的shell类型。
你可以用命令:#shell-name来转换到别的shell,这里shell-name是你想要尝试使用的shell的名称,如ash等。
shell编程基础知识点
shell编程基础知识点
一、Shell 编程基础知识
1、什么是 Shell
Shell 是一种用户使用的解释型程序,它是操作系统的一部分,派生自多种不同的系统。
它是一种命令解释器,它可以读取用户的输入,解释该输入,并执行相应的命令。
Linux 的 Shell 有很多种,如 bash,csh,ksh 等。
2、Shell 的特性
(1) 交互式:用户可以通过 Shell 的界面实现与计算机的交互,以便用户和计算机之间的信息交换。
(2) 自动化:Shell 可以将用户编写的一系列命令,保存为脚本,并在需要的时候自动执行,以减少用户的工作量。
(3) 扩展性:Shell 可以实现过滤和管道功能,可以与其他应用程序和编程语言结合使用,实现不同应用程序、不同编程语言之间的信息传递。
3、Shell 命令
(1)ls : 列出目录内容。
(2)cd : 改变目录。
(3)pwd : 显示当前所在目录。
(4)mkdir : 创建目录。
(5)rm : 删除文件或目录。
(6)cat : 显示文件内容。
(7)echo : 向屏幕输出指定字符串。
(8)exit : 退出当前 shell 环境。
(9)man : 查看指定命令的帮助文档。
(10)chmod : 改变文件权限。
shell编程总结
shell编程总结
Shell编程是一种基于命令行的脚本编程语言,常用于Linux和Unix系统中。
本文将对Shell编程进行总结,包括以下内容:
1. Shell的基础知识:介绍Shell的定义、历史、发展以及Shell 与Linux的关系。
2. Shell脚本的格式:讲解Shell脚本的格式,包括文件头、变量、注释、命令等。
3. Shell命令:介绍常用的Shell命令,如ls、cd、cp、mv、rm、mkdir、cat等。
4. Shell的流程控制:讲解Shell脚本的流程控制语句,包括if语句、for循环、while循环、case语句等。
5. Shell函数:介绍Shell函数的定义、调用和传参等。
6. Shell的文本处理:讲解Shell脚本中的文本处理命令,如grep、sed、awk等。
7. Shell的正则表达式:介绍正则表达式的定义、语法和常用操作符等。
8. Shell的调试和错误处理:讲解Shell脚本的调试方法和错误处理语句,如set -x、set -e等。
9. Shell脚本的实战:通过实际案例介绍如何使用Shell脚本进行系统管理、日志分析、数据处理等。
通过本文的总结,读者可全面了解Shell编程的基础知识和常用技巧,提高Shell编程的能力。
shell的基础语法
shell的基础语法Shell是一种命令行解释器,它允许用户与操作系统进行交互并执行各种操作。
Shell的基础语法包括以下几个方面:1. 命令执行,在Shell中,用户可以直接输入命令来执行各种操作,例如`ls`命令用于列出当前目录下的文件和文件夹,`mkdir`命令用于创建新的目录等。
2. 变量,在Shell中,可以使用变量来存储数据并在需要的时候进行引用。
变量的赋值和引用使用类似于`variable_name=value`和`$variable_name`的语法。
3. 控制结构,Shell支持基本的控制结构,如条件判断和循环。
条件判断使用`if-then-else-fi`语法,而循环则可以使用`for`、`while`等关键字来实现。
4. 函数,Shell中可以定义和调用函数,使用`function_name() { ... }`的语法来定义函数,使用`function_name`来调用函数。
5. 管道和重定向,Shell支持管道和重定向操作,允许用户将一个命令的输出作为另一个命令的输入,或者将命令的输入/输出重定向到文件或其他设备。
6. 通配符,Shell支持通配符来匹配文件名,例如``用于匹配任意字符,`?`用于匹配单个字符等。
7. 注释,在Shell脚本中,可以使用`#`符号来添加注释,注释部分将被解释器忽略。
总的来说,Shell的基础语法包括了命令执行、变量、控制结构、函数、管道和重定向、通配符以及注释等内容。
掌握这些基础语法对于编写Shell脚本和在命令行下进行操作都是非常重要的。
希望这些信息能够帮助你更好地理解Shell的基础语法。
shell基础课程标准
shell基础课程标准Shell(即命令行解释器)是一种计算机操作系统提供的一种用户界面,用户可以在该界面下通过输入一系列的指令来进行各种操作。
Shell基础课程标准为初学者提供了学习Shell编程的基础知识和技能。
Shell基础课程标准主要包括以下几个方面:1. Shell简介:介绍Shell的定义、功能和应用领域,以及Shell脚本的特点和优势。
学生可以了解Shell的基本概念和用法。
2. Shell命令的使用:介绍常用的Shell命令,如文件和目录管理命令、文件内容查看和编辑命令、进程管理命令等。
学生可以学会使用这些命令来进行常见任务的操作。
3. Shell脚本编写:介绍Shell脚本的基本语法和结构,包括变量、条件判断、循环和函数等。
学生可以学会编写简单的Shell脚本来实现一些自动化任务。
4.命令行操作技巧:介绍一些在命令行下的常用操作技巧,如历史命令的查看和使用、通配符和正则表达式的运用、管道和重定向等。
学生可以学会使用这些技巧来提高工作效率。
5. Shell脚本调试和错误处理:介绍如何调试Shell脚本、查找和修复错误。
学生可以学会使用调试工具和技术来提高脚本的质量和稳定性。
6. Shell脚本的高级特性:介绍一些高级的Shell脚本特性和技巧,如命令行参数的处理、输入输出重定向、进程管理和信号处理等。
学生可以学会使用这些特性来解决更复杂的问题。
通过学习Shell基础课程标准,学生可以获得以下几方面的收益:1.提高工作效率:学生可以学会使用命令行来进行各种操作,提高工作效率和操作的灵活性。
2.自动化任务:学生可以学会编写简单的Shell脚本来完成一些重复性的任务,如文件备份、批量处理等。
3.解决问题能力:学生可以学会使用Shell脚本来解决实际问题,如日志分析、系统监控等。
4.加深对计算机系统的理解:通过学习Shell脚本编程,学生可以更深入地理解计算机系统的原理和工作机制。
总之,Shell基础课程标准为初学者提供了学习Shell编程的基础知识和技能,使学生能够在命令行下进行各种操作,并能编写简单的Shell脚本来解决实际问题。
shell编程基础(四):shell脚本语法之函数及调试
shell编程基础(四):shell脚本语法之函数及调试⼀、Shell脚本中的函数和C语⾔类似,Shell中也有函数的概念,但是函数定义中没有返回值也没有参数列表。
例如:#! /bin/shfun(){ echo "Function fun is called";}echo "-=start=-"funecho "-=end=-"注意函数体的左花括号'{'和后⾯的命令之间必须有空格或换⾏,如果将最后⼀条命令和右花括号'}'写在同⼀⾏,命令末尾必须有;号。
在定义fun()函数时并不执⾏函数体中的命令,就像定义变量⼀样,只是给fun这个名字⼀个定义,到后⾯调⽤fun函数的时候(注意Shell中的函数调⽤不写括号)才执⾏函数体中的命令。
Shell脚本中的函数必须先定义后调⽤,⼀般把函数定义都写在脚本的前⾯,把函数调⽤和其它命令写在脚本的最后(类似C语⾔中的main函数,这才是整个脚本实际开始执⾏命令的地⽅)。
Shell函数没有参数列表并不表⽰不能传参数,事实上,函数就像是迷你脚本,调⽤函数时可以传任意个参数,在函数内同样是⽤$0、$1、$2等变量来提取参数,函数中的位置参数相当于函数的局部变量,改变这些变量并不会影响函数外⾯的$0、$1、$2等变量。
函数中可以⽤return命令返回,如果return后⾯跟⼀个数字则表⽰函数的Exit Status。
下⾯这个脚本可以⼀次创建多个⽬录,各⽬录名通过命令⾏参数传⼊,脚本逐个测试各⽬录是否存在,如果⽬录不存在,⾸先打印信息然后试着创建该⽬录。
编辑脚本[root@VM_0_5_centos test]# vi tfun.sh查看脚本内容[root@VM_0_5_centos test]# cat tfun.sh#! /bin/shis_directory(){DIR_NAME=$1if [ ! -d $DIR_NAME ]; thenreturn 1elsereturn 0fi}for DIR in "$@"; doif is_directory "$DIR"then :elseecho "Directory $DIR doesn't exist. Creating it now..."mkdir $DIR > /dev/null 2>&1if [ $? -ne 0 ]; thenecho "Can't create directory $DIR"exit 1fifidone运⾏测试脚本[root@VM_0_5_centos test]# sh tfun.sh aaa abb acc addDirectory aaa doesn't exist. Creating it now...Directory abb doesn't exist. Creating it now...Directory acc doesn't exist. Creating it now...Directory add doesn't exist. Creating it now...查看是否成功创建⽬录[root@VM_0_5_centos test]# lltotal 20drwxr-xr-x 2 root root 4096 Jul 16 11:16 aaadrwxr-xr-x 2 root root 4096 Jul 16 11:16 abbdrwxr-xr-x 2 root root 4096 Jul 16 11:16 accdrwxr-xr-x 2 root root 4096 Jul 16 11:16 add-rw-r--r-- 1 root root 340 Jul 16 11:15 tfun.sh注意:is_directory()返回0表⽰真返回1表⽰假。
Linux_基础教程--Shell脚本编程
学习各种管理和监视命令的使用
学习各种文本文件工具的使用
2014年12月24日
变量和表达式
2014年12月24日
18
Shell 变量操作
变量替换扩展
输入
变量测试 变量的字符串操作 变量的间接引用 $[expression] $((expression)) expr let declare -i
Shell 脚本的执行
PATH 环境变量的默认值不包含当前目录, 若脚本文件在当前目录,应使用 ./script-file
PATH 环境变量的默认值包含 ~/bin 目录, 用户可以将自己的脚本文件存放在 ~/bin 目录, 之后即可直接调用脚本文件名执行脚本了
2014年12月24日
7
Shell 脚本的编码规范
${var/%old/new}
用new替换${var}中结尾部分与old匹配的部分
注: (1)old 中可以使用 通配符。 (2)var 可以是 @ 或 *,表示对每个位置参数进行替换
sh –n 脚本名
对脚本进行语法检查,但不执行脚本。如果存在语法错误,shell 会报错,如果没有错误,则不显示任何内容。
2014年12月24日
12
脚本调试举例 1
对脚本进行语法检查
$ bash -n greetings.sh
显示脚本中每个原始命令行及其执行结果
$ bash -v greetings.sh
2014年12月24日 22
字符串变量替换扩展举例1
str='I love linux. I love UNIX too.‟
Linux之19——Shell编程基础详解
Linux之19——Shell编程基础详解第⼀部分:Linux Shell 简介Shell 是⼀个⽤ C 语⾔编写的程序,它是⽤户使⽤ Linux 的桥梁。
Shell 既是⼀种命令语⾔,⼜是⼀种程序设计语⾔。
Shell 是指⼀种应⽤程序,这个应⽤程序提供了⼀个界⾯,⽤户通过这个界⾯访问操作系统内核的服务。
Ken Thompson 的 sh 是第⼀种 Unix Shell,Windows Explorer 是⼀个典型的图形界⾯ Shell。
当⼀个⽤户登陆linux 系统后,系统就会为该⽤户创建⼀个shell程序。
Shell的版本:Bourne Shell:是贝尔实验室开发的,unix普遍使⽤的shell,在编程⽅⾯⽐较优秀,但在⽤户交互⽅⾯没有其他shell优秀。
BASH:是GNU的Bourne Again Shell,是GNU操作系统上默认的shell,在bourne shell基础上增强了很多特性,如命令补全,命令历史表等等Korn Shell:是对Bourne Shell 的发展,在⼤部分内容上与Bourne Shell兼容,集成了C Shell和Bourne shell优点。
C Shell:是SUN公司Shell的BSD版本,语法与c语⾔相似,⽐bourne shell 更适合编程第⼆部分 shell 程序设计基础2.1 shell输⼊输出2.1.1 echoecho命令可以显⽰⽂本⾏或变量取值,或者把字符串输⼊到⽂件中格式: echo stringecho的常⽤功能:\c 不换⾏ \f 不进纸 \t 跳格 \n 换⾏note:对于linux系统,必须使⽤-e选项来使以上转义符⽣效例:$ echo -e "hello\tboy"hello boyecho命令对特殊字符敏感,如果要输出特殊字符,需要⽤\屏蔽其特殊含义。
常⽤的特殊字符:双引号"" 反引号`` 反斜线\例:$ echo "\"\"" //想输出""""2.1.2 readread命令从键盘或者⽂件的某⼀⾏⽂本中读⼊信息,并将其赋给⼀个变量。
