shell避坑之字符串

字符串可以用单引号,也可以用双引号,也可以不用引号;

  • 单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的(两个单引号相当于双引号,才可以将变量使能);
  • 单引号字串中(双引号中可以)不能出现单独一个的单引号(对单引号使用转义符后也不行),但可成对出现,作为字符串拼接使用。
  • 双引号里变量有效
  • 双引号里可以出现转义字符

[root@localhost home]# cat b21430/pwd.sh
#!/bin/bash
set -x
your_name="runoob"
greeting="hello, "$your_name" !"
greeting_1="hello, ${your_name} !"
echo $greeting  $greeting_1

greeting_2='hello, '$your_name' !'
greeting_3='hello, $your_name !'
echo $greeting_2  $greeting_3
exit 0
[root@localhost home]#
[root@localhost home]# bash b21430/pwd.sh
+ your_name=runoob
+ greeting='hello, runoob !'
+ greeting_1='hello, runoob !'
+ echo hello, runoob '!' hello, runoob '!'
hello, runoob ! hello, runoob !
+ greeting_2='hello, runoob !'
+ greeting_3='hello, $your_name !'
+ echo hello, runoob '!' hello, '$your_name' '!'
hello, runoob ! hello, $your_name !
+ exit 0
字符串里的转义字符

[root@localhost home]# cat test.sh
#!/bin/bash
your_name='runoob'
str1="Hello, I know you are "$your_name"! \n"
echo -e $str1
str2="Hello, I know you are \"$your_name\"! \n"
echo -e $str2
exit 0

[root@localhost home]# bash test.sh
Hello, I know you are runoob!

Hello, I know you are "runoob"!

获取字符串长度

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

提取子字符串

以下实例从字符串第 2 个字符开始截取 4 个字符:

string="runoob is a great site"
echo ${string:1:4} # 输出 unoo

注意:第一个字符的索引值为 0

查找子字符串

查找字符 i 或 o 的位置(哪个字母先出现就计算哪个):

string="runoob is a great site"
echo `expr index "$string" io`  # 输出 4

猜你喜欢

转载自blog.csdn.net/qq_29044159/article/details/108305610