Shell脚本字符串单引号和双引号的区别浅析_linux shell

一、字符串基础知识

字符串是shell编程中最常用最有用的数据类型(除了数字和字符串,也没啥其它类型好用了),字符串可以用单引号,也可以用双引号,也可以不用引号。单双引号的区别跟PHP类似。

单引号

复制代码 代码如下:

str='this is a string'

单引号字符串的限制:

•单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;
•单引号字串中不能出现单引号(对单引号使用转义符后也不行)。

双引号

复制代码 代码如下:

your_name='qinjx'
str="Hello, I know your are \"$your_name\"! \n"

双引号的优点:

•双引号里可以有变量
•双引号里可以出现转义字符

二、常用的字符串相关方法

拼接字符串

复制代码 代码如下:

your_name="qinjx"
greeting="hello, "$your_name" !"
greeting_1="hello, ${your_name} !"

echo $greeting $greeting_1

获取字符串长度

复制代码 代码如下:

string="abcd"
echo ${#string} #输出 4

提取子字符串

复制代码 代码如下:

string="alibaba is a great company"
echo ${string:1:4} #输出liba

查找子字符串

复制代码 代码如下:

string="alibaba is a great company"
echo `expr index "$string" is`

更多字符串处理方法请参考:http://www.jb51.net:81/article/50435.htm

时间: 2024-09-24 08:14:40

Shell脚本字符串单引号和双引号的区别浅析_linux shell的相关文章

linux shell中的单引号与双引号的区别(看完就不会有引号的疑问了)(转)

tips: ============================= IFS - LINUX字段分隔符,内部字段分隔符 IFS(Internal Field Seperator)在Linux的shell中预设的分隔符,用来把command line分解成word(字段). IFS可以是White Space(空白键).Tab( 表格键).Enter( 回车键)中的一个或几个. IFS是shell脚本中的一个重要概念,在处理文本数据时,它是相当有用的.内部字段分隔符是用于特定用途的定界符.IFS

shell编程基础 单引号和双引号的区别_unix linux

下面用一个简单的shell程序要说明一下. debian:~/learn/shell# cat phonebook Alice Chebba 973-555-2015 Barbara Swingle 201-555-9257 Liz Stachiw 212-555-2298 Susan Goldberg 201-555-7776 Susan Topple 212-555-4932 Tony Iannino 973-555-1295 Stromboli Pizza 973-555-9478 deb

PHP 单引号与双引号的区别_php技巧

1.定义字符串 在PHP中,字符串的定义可以使用单引号,也可以使用双引号.但是必须使用同一种单或双引号来定义字符串,如:'Hello"和"Hello'为非法的字符串定义. 定义字符串时,只有一种引号被视为定义符,即单引号或双引号.于是,如果一个字符串由双引号开始,那么只有双引号被分析器解析.这样,你就可以在双引号串中包含任何其他字符,甚至单引号.下面的引号串都是合法的: Php代码 复制代码 代码如下: $s = "I am a 'single quote string' i

javascript单引号和双引号的区别和处理_基础知识

单引号和双引号其实没啥区别,看你自己习惯了 复制代码 代码如下: <input type="button" onclick="alert("1")">-------------------不正确 <input type="button" onclick="alert('1')">-------------------正确 双引号中再用双引号要这样: var str = "a

PowerShell中字符串使用单引号和双引号的区别_PowerShell

本文介绍PowerShell开发时,在字符串中如何去包含变量.将变量包含在字符串中,最后得到的结果是将变量的值放入到了字符串中. 假如有一个字符串变量:$p = "PowerShell" 那么 $str="Hello $p",这时,$str的值是什么呢?且看下面的演示: 复制代码 代码如下: PS C:\Users\spaybow> $p="PowerShell" PS C:\Users\spaybow> $str="Hel

jquery 单引号和双引号的区别及使用注意

在js中单引号和双引号都是一样的,平时使用的时候尽量用单引号,只有碰到嵌套的时候才会同时用两种引号,感兴趣的朋友可以了解下   可以执行的语法:$("ul li a").filter(":contains('佳能'),:contains('松下'),:contains('卡西欧')").css("color","red"); 错误的语法:$("ul li a").filter(":contains

深入详谈PHP单引号和双引号区别

在PHP中单引号和双引号并非是互通的,具体区别如下: " " 双引号里面的字段会经过编译器解释,然后再当作HTML代码输出. ' ' 单引号里面的不进行解释,直接输出. 从字面意思上就可以看出,单引号比双引号要快了. 例如: $abc='my name is tome'; echo $abc //结果是:my name is tom echo '$abc' //结果是:$abc echo "$abc" //结果是:my name is tom 在SQL语句中 这是会

grep后加单引号、双引号和不加引号的区别

环境:VirtualBox4.1 + RedHat Linux 6 + Putty0.62 单引号: 可以说是所见即所得:即将单引号内的内容原样输出,或者描述为单引号里 面看到的是什么就会输出什么.单引号''是全引用,被单引号括起的内容不管是 常量还是变量者不会发生替换. 双引号: 把双引号内的内容输出出来:如果内容中有命令.变量等,会先把变量.命 令解析出结果,然后在输出最终内容来.双引号""是部分引用,被双 引号括起的内容常量还是常量,变量则会发生替换,替换成变量内容. 不加引号:

关于在JavaScript中使用EL表达式的问题,到底用不用加单引号或者双引号或者不加?

问题描述 关于在JavaScript中使用EL表达式的问题,到底用不用加单引号或者双引号或者不加? 之前我自己编辑百度地图api时候,EL表达式是直接写的,但是并不能使用. 当时我在csdn上找到了如下这篇文章,说是要加引号.http://blog.csdn.net/xuechongyang/article/details/8629473然后就成功了. 比如下代码的最后一句. <script type=""text/javascript""> // 百度