使用双引号保持引号内的所有字符的字面值(回车也不例外),但以下情况除外:
- 反引号用于命令替换。
- \$用于表示$
- \`用于表示反引号
- \"用于表示内嵌的双引号
- \\用于表示反斜杠 \
- 反斜杠用于非以上的情况,仅表示反斜杠
- 对变量的取值 $EXAMPLE
double.sh
#!/bin/sh
echo "$SHELL"
echo "`date`"
echo "I'd say:\"Go for it\""
echo "\\"
$ ./double.sh
/bin/bash
Tue Mar 1 20:59:50 CST 2022
I'd say:"Go for it"
Linux C编程一站式学习
在日常工作中,常常需要判断某个变量是否存在。若变量存在则使用既有的配置,若变量不存在,则给予一个常用的配置。在Shell脚本中,有许多特殊符号用于不同的操作和功能。提供一些可以直接对变量进行操作的符号。通过这些符号,变量中的部分内容可以被删除、替换和替代。中,变量的删除、替换和替代也是非常重要的。通过简单操作修改变量,可以减少代码的行数并提高可读性。
1、在使用多重引号时系统是从前往后看的,能匹配就算一对,所以这样一对一对的断句将整个命令串分为若干部分;
2、为了使系统识别后(被识别的引号会消失)的命令串功能正确,需要使用转义字符手动的在合适的地方加入合适的引号;
将不连续的一串(比如包含空格)作为一个整体,需用单引号或双引号括起来,区别在于双引号仍能解析其中的变量等;
倒引号用于命令替换,不过倒引号一般不嵌套,在此主要讨论单双引号的嵌套。
当要引用一个变量的值时,一般推荐使用双引号。使用双引号除了变量名[2]前缀($)、后引符(`)和转义符(\)外,会使shell不再解释引号中其它所有的特殊字符。[3]用双引号时$仍被当成特殊字符,允许引用一个被双引号引起的变量("$variable"),那也是说$variable会被它的值所代替。用双引号还能使句子不被分割开.[4]一个参数用双引号引起来能使它被看做一个单元,这样即使参数里面包含有空白字符也不会被shell分割开了。1#!/bin/bash3。...
将要执行的命令按顺序保存到一个文本文件,给该文件可执行权限,可结合各种shell控制语句以完成更复杂的操作。[root@localhost ~]# 变量名=变量值注: 如果定义变量值中间有空格需要用单、双引号引起来;两边不可以有空格;123456默认情况下,新定义的变量只在当前的Shell环境中有效,因此称为局部变量。当进入子程序或新的子Shell环境时局部变量将无法再使用。可以通过内部命令export将指定的变量导出为全局变量,使用户定义的变量在所有的子Shell环境中能够继续使用。
用户创建得变量仅可用于当前Shell 子Shell默认读取不到父Shell定义得变量,为了把变量传递给子Shell,需要使用export命令,这样输出得变量,对于子Shell来说就是环境变量。由于反斜杠在单引号里面变成了普通字符,所以如果单引号之中,还要使用单引号,不能使用转义,需要在外层的单引号前面加上一个美元符号(声明为整数,覆盖以后,Bash 不会报错,但会赋以不确定的值,上面的例子中可能输出0,也可能输出的是3。单引号用于保留字符的字面含义,各种特殊字符在单引号里面,都会变为普通字符,比如星号(