shell脚本中一些特殊符号
1、{} 大括号:
用法一:通配符扩展
ls my_{finger,toe}s
这条命令相当于如下命令的组合:
ls my_fingers my_toes
mkdir {userA,userB,userC}-{home,bin,data}我们将得到 userA-home, userA-bin, userA-data, userB-home, userB-bin,userB-data,userC-home, userC-bin, userC-data,这几个目录
用法二:可用于语句块的构造,语句之间用回车隔开。如果你想在某些使用单个语句的地方(比如在AND或OR列表中)使用多条语句,你可以把它们括在花括号{}中来构造一个语句块。
{ grep -v "$cdcatnum" $strack_file > $temp_file cat $temp_file > $strack_file echo cat -n file1 }(注:以上大括号中的四句命令够成了一个语句块)
用法三:参数扩展
${name:-default} 使用一个默认值(一般是空值)来代替那些空的或者没有赋值的变量name;
${name:=default}使用指定值来代替空的或者没有赋值的变量name;
${name:?message}如果变量为空或者未赋值,那么就会显示出错误信息并中止脚本的执行同时返回退出码1。
${#name} 给出name的长度
${name%word} 从name的尾部开始删除与word匹配的最小部分,然后返回剩余部分
${name%%word} 从name的尾部开始删除与word匹配的最长部分,然后返回剩余部分
${name#word} 从name的头部开始删除与word匹配的最小部分,然后返回剩余部分
${name##word} 从name的头部开始删除与word匹配的最长部分,然后返回剩余部分
(注,name为变量名,word为要匹配的字符串)
用法三在处理字符串和未知变量时,是很有用的。
2、[] 中括号:
用法一:通配符扩展:
允许匹配方括号中任何一个单个字符
ls /[eh][to][cm]*
相当于执行 ls /etc /home(若有/eom目录,就相当于会执行ls /etc /home /eom)
注:在mkdir命令下不能扩展
用法二:用于条件判断符号:
[]符号可理解为指向test命令的一个软链接,所以其用法可完全参照test,将test位置替换为[便可。
eg: if [ "$?" != 0 ] 等价于 if test "$?" != 0
then echo "Executes error"
3、`command` 反引号:`command`与$(command)的含义相同,都是返回当前执行命令的结果
#!/bin/sh for file in $(ls f*.sh);do lpr $file done exit 0
该例实现了扩展f*.sh给出所有匹配模式的文件的名字。
4、'string' 单引号 和 "string" 双引号
双引号:如果想在定义的变量中加入空格,就必须使用单引号或双引号,
单、双引号的区别在于双引号转义特殊字符而单引号不转义特殊字符
eg: $ heyyou=home
$ echo '$heyyou'
$ $heyyou ($没有转义)
eg: $ heyyou=home
$ echo "$heyyou"
$ home (很明显,$转义了输出了heyyou变量的值)
5、$# 它的作用是告诉你引用变量的总数量是多少;
$$ 它的作用是告诉你shell脚本的进程号;
$* 以一个单字符串显示所有的脚本传递的参数。等价于$1 $2 $3.......;
$@ 与$*基本类似(参见序号7),但在数组赋值时有些不同;
$? 前一个命令的退出码;
$- 显示shell使用的当前选项;
$! 最后一个后台运行的进程ID号。
6、$((...))语法:对括号内的表达式求值
#!/bin/sh x=0 hile [ "$x" -ne 10 ];do echo $x x=$(($x+1)) done exit 0
7、shell中几种特殊的参数变量的引用
$1、$2、$3……${10}、${11}、${12}…… :表示脚本传入的的各个参数,注意当需表示两位数以后的参数时数字要用花括号括起。
$@ 列出所有的参数,各参数用空格隔开
$*: 列出所有的参数,各参数用环境变量IFS的第一个字符隔开
8、命令列表:
AND列表 statement1 && statement2 && statement3 && …:只有在前面所有的命令都执行成功的情况下才执行后一条命令
OR列表 statement1 || statement2 || statement3 || …:允许执行一系列命令直到有一条命令成功为止,其后所有命令将不再被执行
#!/bin/sh touch file_one rm -f file_two if [ -f file_one ] && echo "hello" && [ -f file_two ] && echo " there" then echo "in if" else echo "in else" fi exit 0
上例的输出为:
hello
in else
关于AND列表与OR列表,在逻辑判断中很使用,下面就举一个其最常用的例子:
[ condition ] && command for true || command for false:
当条件为真时,执行commandfor true ,当条件为假时,执行command for false
9、: 冒号:内建空指令,返回值为0
eg: $ :
$ echo $?
$ 0
while: (该语句结构可实现一个无限循环)
10、; 分号: 在 shell 中,担任"连续指令"功能的符号就是"分号"
eg:cd ~/backup ; mkdir startup ; cp ~/.* startup/.
11、# 井号:表示符号后面的是注解文字,不会被执行;
* 匹配文件名中的任何字符,包括字符串;
? 匹配文件名中的任何单个字符。
~ 代表使用者的 home 目录
12、\ 倒斜线:放在指令前,有取消 aliases(别名) 的作用;放在特殊符号前,则该特殊符号的作用消失;放在指令 的最末端,表示指令连接下一行(使得回车符无效,只起换行作用)
13、! 感叹号:通常它代表反逻辑的作用,譬如条件侦测中,用 != 来代表"不等于"
14、** 次方运算:两个星号在运算时代表 "次方" 的意思
eg:let "sus=2**3"
echo "sus = $sus"
$ sus = 8 -
相关推荐
shell脚本中有一些特殊符号,掌握这些符号的用法是非常重要的。本文将对shell脚本中的特殊符号进行总结性梳理。 1.井号( comments ) 井号(#)符号几乎出现在 shell 脚本中的每一行。该符号后的内容将被视为注解...
在Shell脚本中可以执行各种系统命令,并可以使用特殊字符和符号来扩展命令的功能,例如使用管道符`|`进行命令链式处理,使用重定向符`>`、`来控制命令的输入输出。 3. 流程控制是脚本决策和循环处理的关键。if语句...
shell脚本中有多种特殊符号,包括: 1. $[]:四则运算符。 2. $():将命令的输出结果作为参数。 3. ``:将命令的输出结果作为参数。 4. #:注释符号。 5. 「」:引用整体。 10.总结 shell脚本是Linux系统中...
Shell脚本,作为Linux/Unix系统中的编程工具,是一种强大的自动化任务执行手段。它基于Bourne shell或者其扩展版本,如bash(Bourne-Again SHell),提供了一种编写命令行序列的方式,使用户能够创建具有复杂逻辑的...
在Ubuntu 22.04.2 LTS中编写Shell脚本是系统管理和自动化任务执行的重要方式。Shell脚本,通常以.sh文件结尾,是一系列在Linux或Unix环境中执行的命令集合,可以极大地提升工作效率。在Ubuntu中,我们可以利用内置的...
"shell脚本精华总结" 本资源摘要信息涵盖了 shell 脚本的基础知识点,包括 shell 脚本的基本概念、vim 编辑器的使用、shell 命令的执行方式、vim 中的搜索和替换、环境变量的设置和使用等。 一、shell 脚本的基本...
Linux Shell脚本攻略是针对那些想要深入理解和应用Linux操作系统中的Shell脚本编程的用户而设计的资源。Shell脚本是Linux系统中一种强大的自动化工具,它允许用户通过编写一系列命令来执行复杂的任务,从而提高工作...
编写Shell脚本的过程中还需要注意特殊字符的使用,比如$()用于命令替换,{}用于限定变量的作用域,[]用于测试条件表达式,而 [[]]则用于更高级的条件测试。 最后,脚本编写完成之后,建议通过实际的例程、习题实训...
通过以上介绍,我们可以了解到Shell脚本在自动化任务中的强大功能,以及如何有效地管理和使用变量。熟练掌握Shell脚本,能大大提高Linux系统操作的效率和便捷性。对于Linux用户来说,理解并运用Shell脚本是提升工作...
本文将详细介绍Shell中的一些常用特殊符号及其应用场景。 #### 二、特殊符号详解 ##### 1. # (井号) **用途**: 用于标记注释或作为命令的解释器标识。 - **注释**: 当出现在一行的开头时,# 后面的内容将被视为...
本文档将介绍Linux Shell脚本的一些基础知识和常用命令。 首先,Shell脚本的创建可以使用文本编辑器,如vim、nano等。创建完成后,通过在命令行输入`chmod +x 文件名`来为脚本文件赋予执行权限。然后使用`./文件名`...
在"shell脚本编程02"这个主题中,我们将会深入探讨一些高级的shell编程技巧,特别是关于变量处理和文件操作的部分。 首先,让我们来看一下"Shell变量替换技术实践与生产实战教训案例"。在shell脚本中,变量替换允许...
由于提供的文件内容中存在大量重复的网址,没有提供实质性的学习内容,因此以下知识点将基于标题和描述中提到的“shell脚本学习指南”来展开。 Shell脚本是操作系统中的一个强大工具,它允许用户通过编写一系列的...
以上介绍的特殊符号是在Shell脚本编程中经常使用的工具。熟练掌握它们不仅可以提升脚本的效率,还能使脚本更加清晰易懂。希望本文能为你提供有用的信息,帮助你在日常工作中更高效地使用Shell脚本。
在开始编写Shell脚本之前,你需要掌握一些基本的Linux命令和工具,如ls、cd、mkdir、rm等,这些是进行文件管理和系统操作的基础。接下来,我们会编写第一个Shell脚本,这是一个简单的命令集合,通过执行这些命令,你...
Shell脚本编程基础知识点 Shell 脚本编程是 Linux 操作系统中的一种自动化工具,允许用户通过编写脚本来自动执行重复的任务。下面是 Shell 脚本编程的基础知识点: 变量 * 变量声明:在 Shell 中,变量可以通过...
而在Linux环境中,shell脚本编写则是系统管理、自动化运维和开发工作中的一项基本技能。Shell脚本不仅能将复杂的系统命令组合成自动化任务,还能够实现条件判断、流程控制等功能,极大提高工作效率。 脚本的名称...