- 浏览: 49988 次
- 性别:
文章分类
- 全部博客 (103)
- 一致性哈希算法 (1)
- 云计算 (2)
- Cassandra学习 (2)
- Java网络通信与笔记 (14)
- ZooKeeper学习 (1)
- HBase学习 (1)
- Sqoop学习 (1)
- Java网页开发之 (2)
- Java网络通信框架 (5)
- (memcached)分布式内存对象缓存系统 (1)
- Redis学习 (5)
- Shell学习 (14)
- Linux学习 (10)
- MySQL优化 (17)
- C++ (7)
- HTML5 (5)
- Android学习 (5)
- 网络 (2)
- Node.js (1)
- D3.js (1)
- R语言学习 (3)
- Spark (1)
- CAN协议 (2)
- 解决方案 (0)
最新评论
如果表达式中包含特殊字符,Shell 将会进行替换。例如,在双引号中使用变量就是一种替换,转义字符也是一种替换。
举个例子:
下面的转义字符都可以用在 echo 中:
转义字符 含义
\\ 反斜杠
\a 警报,响铃
\b 退格(删除键)
\f 换页(FF),将当前位置移到下页开头
\n 换行
\r 回车
\t 水平制表符(tab键)
\v 垂直制表符 可以使用 echo 命令的 -E 选项禁止转义,默认也是不转义的;使用 -n 选项可以禁止插入换行符。
命令替换
命令替换是指Shell可以先执行命令,将输出结果暂时保存,在适当的地方输出。
命令替换的语法:
`command`
注意是反引号,不是单引号,这个键位于 Esc 键下方。
下面的例子中,将命令执行结果保存在变量中:
变量替换可以根据变量的状态(是否为空、是否定义等)来改变它的值
可以使用的变量替换形式:
形式 说明
${var} 变量本来的值
${var:-word} 如果变量 var 为空或已被删除(unset),那么返回 word,但不改变 var 的值。
${var:=word} 如果变量 var 为空或已被删除(unset),那么返回 word,并将 var 的值设置为 word。
${var:?message} 如果变量 var 为空或已被删除(unset),那么将消息 message 送到标准错误输出,可以用来检测变量 var 是否可以被正常赋值。
若此替换出现在Shell脚本中,那么脚本将停止运行。
${var:+word} 如果变量 var 被定义,那么返回 word,但不改变 var 的值。
请看下面的例子:
复制纯文本新窗口
举个例子:
#!/bin/bash a=10 echo -e "Value of a is $a \n"运行结果:
Value of a is 10这里 -e 表示对转义字符进行替换。如果不使用 -e 选项,将会原样输出:
Value of a is 10\n
下面的转义字符都可以用在 echo 中:
转义字符 含义
\\ 反斜杠
\a 警报,响铃
\b 退格(删除键)
\f 换页(FF),将当前位置移到下页开头
\n 换行
\r 回车
\t 水平制表符(tab键)
\v 垂直制表符 可以使用 echo 命令的 -E 选项禁止转义,默认也是不转义的;使用 -n 选项可以禁止插入换行符。
命令替换
命令替换是指Shell可以先执行命令,将输出结果暂时保存,在适当的地方输出。
命令替换的语法:
`command`
注意是反引号,不是单引号,这个键位于 Esc 键下方。
下面的例子中,将命令执行结果保存在变量中:
#!/bin/bash DATE=`date` echo "Date is $DATE" USERS=`who | wc -l` echo "Logged in user are $USERS" UP=`date ; uptime` echo "Uptime is $UP"运行结果:
Date is Thu Jul 2 03:59:57 MST 2009 Logged in user are 1 Uptime is Thu Jul 2 03:59:57 MST 2009 03:59:57 up 20 days, 14:03, 1 user, load avg: 0.13, 0.07, 0.15变量替换
变量替换可以根据变量的状态(是否为空、是否定义等)来改变它的值
可以使用的变量替换形式:
形式 说明
${var} 变量本来的值
${var:-word} 如果变量 var 为空或已被删除(unset),那么返回 word,但不改变 var 的值。
${var:=word} 如果变量 var 为空或已被删除(unset),那么返回 word,并将 var 的值设置为 word。
${var:?message} 如果变量 var 为空或已被删除(unset),那么将消息 message 送到标准错误输出,可以用来检测变量 var 是否可以被正常赋值。
若此替换出现在Shell脚本中,那么脚本将停止运行。
${var:+word} 如果变量 var 被定义,那么返回 word,但不改变 var 的值。
请看下面的例子:
#!/bin/bash echo ${var:-"Variable is not set"} echo "1 - Value of var is ${var}" echo ${var:="Variable is not set"} echo "2 - Value of var is ${var}" unset var echo ${var:+"This is default value"} echo "3 - Value of var is $var" var="Prefix" echo ${var:+"This is default value"} echo "4 - Value of var is $var" echo ${var:?"Print this message"} echo "5 - Value of var is ${var}"运行结果:
复制纯文本新窗口
Variable is not set 1 - Value of var is Variable is not set 2 - Value of var is Variable is not set 3 - Value of var is This is default value 4 - Value of var is Prefix Prefix 5 - Value of var is Prefix
发表评论
-
Shell文件包含
2015-09-05 14:20 0像其他语言一样,Shell 也可以包含外部脚本,将外部脚本的内 ... -
Shell输入输出重定向:Shell Here Document,/dev/null文件
2015-09-05 14:16 0Unix 命令默认从标准输 ... -
Shell函数参数
2015-09-05 14:10 0在Shell中,调用函数时可以向其传递参数。在函数体内部,通过 ... -
Shell函数:Shell函数返回值、删除函数、在终端调用函数
2015-09-05 14:07 0函数可以让我们将一个复杂功能划分成若干模块,让程序结构更加清晰 ... -
Shell break和continue命令
2015-09-05 14:05 0在循环过程中,有时候需要在未达到循环结束条件时强制跳出循环,像 ... -
Shell until循环
2015-09-05 14:03 0until 循环执行一系列命令直至条件为 true 时停止。u ... -
Shell while循环
2015-09-05 14:00 0while循环用于不断执行一系列命令,也用于从输入文件中读取数 ... -
Shell for循环
2015-09-08 22:58 462与其他编程语言类似,Shell支持for循环。 for循环一 ... -
Shell case esac语句
2015-09-05 13:57 0case ... esac 与其他语言中的 switch .. ... -
Shell if else语句
2015-09-05 13:54 0if 语句通过关系运算符判断表达式的真假来决定执行哪个分支。S ... -
shell printf命令:格式化输出语句
2015-09-13 16:01 538printf 命令用于格式化输出, 是echo命令的增强版。它 ... -
Shell echo命令
2015-09-13 16:00 1019echo是Shell的一个内部指令,用于在屏幕上打印出指定的字 ... -
Shell数组:shell数组的定义、数组长度
2015-09-12 10:17 598Shell在编程方面比Windows批处理强大很多,无论是在循 ... -
Shell字符串
2015-09-11 22:00 300字符串是shell编程中最常用最有用的数据类型(除了数字和字符 ... -
Shell注释
2015-09-11 22:00 366以“#”开头的行就是注释,会被解释器忽略。 sh里没有多行注 ... -
Shell运算符:Shell算数运算符、关系运算符、布尔运算符、字符串运算符等
2015-09-06 20:19 450Bash 支持很多运算符, ... -
Shell特殊变量:Shell $0, $#, $*, $@, $?, $$和命令行参数
2015-09-06 20:18 359前面已经讲到,变量名只能包含数字、字母和下划线,因为某些包含其 ... -
Shell变量:Shell变量的定义、删除变量、只读变量、变量类型
2015-09-05 13:09 601Shell支持自定义变量。 定义变量 定义变量时,变量名不加 ... -
第一个Shell脚本
2015-09-05 13:02 298打开文本编辑器,新建一个文件,扩展名为sh(sh代表shell ... -
Shell脚本语言与编译型语言的差异
2015-09-05 12:58 441大体上,可以将程序设 ...
相关推荐
- **命令替换**:`cmd1 $(cmd2)` 使用 `cmd2` 的输出作为 `cmd1` 的参数。 - **逻辑运算**:`cmd1 && cmd2` 表示只有当 `cmd1` 成功时才执行 `cmd2`;`cmd1 || cmd2` 表示如果 `cmd1` 失败才执行 `cmd2`。 5. **...
转义字符`\`是最常用的特殊字符转义方法,将其放在特殊字符前即可使其失效。例如,如果想打印名为`test*`的文件内容,可以使用`cat test\*`,这里的`\`告诉Shell不要将`*`作为通配符处理。 单引号`' '`和双引号`" ...
### 练习Shell变量、重定向、管道等相关命令 在Linux和Unix系统中,Shell脚本是一种非常强大的工具,用于自动化任务处理、系统管理和数据处理等。熟练掌握Shell中的变量、重定向和管道操作对于提高工作效率至关重要...
Shell替换:Shell变量替换,命令替换,转义字符 **替换机制**: - **变量替换**:`echo "Hello, $USER!"` 使用变量值。 - **命令替换**:`echo $(date)` 执行命令并使用其输出。 - **转义字符**:使用`\`来取消...
在本文中,我们将深入探讨如何在BAT文件中进行字符串操作,包括提取和替换,以及相关的DOS命令和技巧。 1. **字符串提取**: 在BAT文件中,可以使用`FIND`和`FINDSTR`命令来提取字符串。`FIND`命令用于查找文本...
此外,反引号``用于执行命令替换,`$()`则提供一种更现代的命令替换语法。 总结,shell脚本中的变量和引用是其灵活性和强大功能的关键所在。理解变量的类型、赋值规则、位置参数以及内部变量的使用,能帮助我们编写...
本资源摘要信息涵盖了 shell 脚本的基础知识点,包括 shell 脚本的基本概念、vim 编辑器的使用、shell 命令的执行方式、vim 中的搜索和替换、环境变量的设置和使用等。 一、shell 脚本的基本概念 * shell 脚本是一...
- `\`:转义字符,用于延长命令至下一行。 #### 常用控制组合键 Linux Shell还支持一些常用的控制组合键,它们可以方便地管理和控制Shell会话: - **Ctrl+C**:中止当前正在执行的命令。 - **Ctrl+\**:同 Ctrl+C...
Bash支持多种转义字符,如`\a`(ASCII响铃字符)、`\d`(日期格式化)、`\e`(ASCII转义字符)、`\h`(主机名的一部分)等,这些字符用于格式化输出或控制终端行为。 #### 命令历史与重复 利用`history`命令,用户...
- 双引号 `"` 引导的字符串允许包含变量和转义字符,可以进行变量替换和转义字符解析。 6. **字符串拼接**: - 可以通过 `$变量名` 的方式拼接变量值,例如 `a="123"$a456` 或 `${a}456`。 - 也可以使用双引号 `...
echo $a)`:此命令组会在子Shell中定义变量`a`,但主Shell环境中无法访问该变量。 - `array=(a b c)`:初始化数组`array`。 ##### 9. `{}` 代码块/文件扩展 - **用途**:用于创建代码块;用于文件名扩展。 - **...
### Shell特殊字符含义详解 在Shell编程中,特殊字符扮演着非常重要的角色,它们能够帮助开发者更加高效地完成脚本编写、控制流程以及处理输入输出等任务。下面将详细介绍Shell编程中的一些关键特殊字符及其用途。 ...
4. 引号的使用有讲究,`""`是弱引用,`''`是强引用,`$()`和``(反引号)用于命令替换,其中`$()`可嵌套。 5. 交互定义变量可通过`read -p`命令获取用户输入。 环境变量是系统级别的,用于设置用户的工作环境,如`...
涵盖的内容包括变量的定义和赋值、特殊变量的应用、字符串的各种操作如拼接、长度计算、子串提取、查找子串位置、替换子串以及不同类型的引号使用和特殊字符的转义技巧。文章还提供了一个综合案例,展示了如何利用...
- **7.2.1** 使用 `export` 命令可以使变量的修改对子 shell 生效。 - **7.3** `unset` 命令:用于删除变量。 - **7.3.1** 删除指定变量。 - **7.3.2** 示例:`unset newval`。 以上是关于 Linux Shell 中常用的...
Linux Shell 变量设置是一种非常重要的技术,在 Linux 中,每个用户登录系统之后都会有一个属于自己的 bash shell,每个人都能够使用 bash 执行命令来收取自己的邮箱,但是 bash 是如何知道你的邮箱是哪个文件?...
在Java程序中调用Shell命令并传入带有特殊字符的参数时,会遇到一些挑战,因为Shell和DataX对特殊字符的处理方式可能不同。 首先,让我们理解Java如何调用Shell命令。在Java中,我们可以使用Runtime或者...
双引号允许变量扩展和转义字符: ```shell your_name="qinjx" greeting="hello, $your_name!" ``` 获取字符串长度使用${#str}表达式,提取子字符串可以使用${str:start:length}的格式: ```shell string="runoob is ...