`
天梯梦
  • 浏览: 13630034 次
  • 性别: Icon_minigender_2
  • 来自: 洛杉矶
社区版块
存档分类
最新评论

shell脚本中一些特殊符号

 
阅读更多
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脚本之特殊符号总结性梳理

    shell脚本中常见的一些特殊符号和作用详解

    主要介绍了shell脚本中常见的一些特殊符号和它的作用详解,总结的很简洁,容易看懂,需要的朋友可以参考下

    shell中冒号的特殊用法分享

    shell脚本中28个特殊字符的作用简明总结Shell命令行中特殊字符与其转义详解(去除特殊含义)Shell脚本中的特殊字符(美元符、反斜杠、引号等)...简明总结(包含了绝大部份)shell脚本中常见的一些特殊符号和作用详解

    Shell脚本中的特殊字符(美元符、反斜杠、引号等)作用介绍

    Shell中的特殊字符有 1、$ 美元符 2、\ 反斜杠 3、` 反引号 4、” 双引号 5、< ,>;,*,?,[,] 下面我一一举列说明 一、$符号 1、echo $? 显示的是上一条指令退出状态 2、echo “$?” 效果同上 3、echo ‘$...

    shell 基本语法

    * 6 Shell里的一些特殊符号 o 6.1 引号 o 6.2 Here documents * 7 Shell里的函数 * 8 命令行参数 * 9 Shell脚本示例 o 9.1 一般编程步骤 o 9.2 二进制到十进制的转换 o 9.3 文件循环拷贝 * 10 ...

    Linux Shell中的特殊符号和含义简明总结(包含了绝大部份)

    在Linux Shell中有很多的特殊符号,这对于我们写Shell脚本时要特别留意:一方面要知道这些特殊符号的用法,这些符号用好了可以达到事半功倍的效果;但另一方面要避免这些特殊符号的过度使用而导致脚本难以调试、难以...

    Shell脚本中的位置变量参数(特殊字符)实例讲解

    $@ : 与$#相同,但是使用时加引号,并在引号中返回每个参数 $- : 显示shell使用的当前选项,与 set命令功能相同 $? : 显示最后命令的退出状态。 0表示没有错误,其他任何值表明有错误。 代码如下: #!/bin/sh #param....

    shell编程基础(linux编程方向)

    • 6 Shell里的一些特殊符号 o 6.1 引号 o 6.2 Here documents • 7 Shell里的函数 • 8 命令行参数 • 9 Shell脚本示例 o 9.1 一般编程步骤 o 9.2 二进制到十进制的转换 o 9.3 文件循环拷贝 • 10 脚本...

    Shell中特殊字符的用法总结大全

    作为程序设计语言,它预定义了各种环境变量,保留了一些关键字以及一些特殊字符的含义,并提供了许多在高级语言中才具有的控制结构,包括循环和分支判断。 本文将给大家介绍关于Shell特殊字符用法的相关内容,话不多...

    Shell 命令执行顺序分析[图]

    Shell 从标准输入或脚本中读取的每一行称为管道(pipeline);它包含了一个或多个命令(command),这些命令被一个或多个管道字符(|)隔开。 事实上还有很多特殊符号可用来分隔单个的命令:分号(;)、管道(|)、&...

    shell 编程指南pdf

    16.1 使用shell脚本的原因 151 16.2 脚本内容 151 16.3 运行一段脚本 152 16.4 小结 153 第17章 条件测试 154 17.1 测试文件状态 154 17.2 测试时使用逻辑操作符 155 17.3 字符串测试 155 17.4 测试数值 156 17.5 ...

    新版Linux Shell编程实训(全)20170518.docx

    任务2.3 特殊符号 72 任务2.4 Shell案例:显示系统信息: 78 练习(每题12.5分,共计100分) 80 项目三 Shell传递参数 81 [学习目标] 81 任务3.1 Shell传递参数 82 任务3.2 Shell案例:参数比较 85 任务3.3Shell案例...

    跟老男孩学Linux运维:Shell编程实战

    815.6 awk实现计算 / 835.7 declare(同typeset)命令的用法 / 835.8 $[]符号的运算示例 / 835.9 基于Shell变量输入read命令的运算实践 / 84第6章 Shell脚本的条件测试与比较 / 926.1 Shell脚本的条件测试 / ...

    shell编程学习笔记

    可用跳脱字符『 \ 』将特殊符号(如 [Enter], $, \, 空格符, '等)变成一般字符; "6.在一串命令中,还需要藉由其他的命令提供的信息,可以使用反单引号『`命令`』或 『$(命令)』 特别注意:那个 ` 是...

    Linux_Shell编程基础

    目录 • 1 变量赋值和引用 2 Shell 里的流程控制 ...3 Shell 里的一些特殊符号 o 3.1 引号 • 4 Here Document • 5 Shell 里的函数 6 Shell 脚本示例 o 6.1 二进制到十进制的转换 o 6.2 文件循环拷贝 • 7 脚本调试

    LINUX与UNIX SHELL编程指南(很全)

    16.1 使用shell脚本的原因 151 16.2 脚本内容 151 16.3 运行一段脚本 152 16.4 小结 153 第17章 条件测试 154 17.1 测试文件状态 154 17.2 测试时使用逻辑操作符 155 17.3 字符串测试 155 17.4 测试数值 156 17.5 ...

    shell编程基础

    • 3 Shell里的一些特殊符号 o 3.1 引号 • 4 Help Document • 5 Shell里的函数 • 6 命令行参数 • 7 Shell脚本示例 o 7.1 一般编程步骤 o 7.2 二进制到十进制的转换 o 7.3 文件循环拷贝 • 8 脚本调试

Global site tag (gtag.js) - Google Analytics