天天看點

字元串---Bash

Bash最基本的文法

循環和條件判斷—Bash

Vim快捷鍵

運算符----Bash

數組----Bash

字元串—Bash

變量----Bash

字元串

""

''

的差別

字元串嘛,可以單引号,雙引号。我們知道在

Python

中,

""

''

沒啥差別,真的一點差別也沒有。在

Python3

裡,

print("hello word")
print('hello word')
#輸出是一樣的
hello word
hello word
           

但是在

c/c++

裡,是不一樣的。

''

是針對字元的,比如

a

;而

""

是針對字元串的,比如

"hello"

。而

shell

呢,主要是用

c/c++

實作的,是以在

shell

裡,

""

''

是有差別的。

  • 單引号限制最大,任何的字元都會原樣輸出,變量是無效的
  • 雙引号比較友好,可以引用,也可以有轉義字元
your_name="xxxx.com"#定義變量
str="hello, i like \"$(your_name)"\! \n" #\n 換行
echo -e $(str) # -e的意思是要使轉義字元有作用
#輸出結果
hello, i like xxxx.com
           

拼接字元串

擷取字元串長度

文法:

${#varname}

{}

是必須的

str="asdf"#定義字元串
echo ${#str}#輸出4
           

截取

文法:

${varname:begin:length}

這個和

Python

c/c++

是類似的。

str="runoob is a great site"
echo${str:1:4}#字元串第 2 個字元開始截取 4 個字元
#輸出的是
unoo
           
  • begin為

    +

    ,就是從頭開始算;如果為

    -

    ,就是倒着算

字元串替換

我有"我愛蘇西并結婚",我想把"蘇西"改成"薩拉"。

文法:

{first_str/need_change_str/$second_str}

----隻比對第一項

#!/bin/bash
first_str="I love Suzi and marry"
second_str="Sara"
echo "${first_str/Suzi/$(second_str)}"
#輸出
I love Sara and marry
           

文法:

{first_str//need_change_str/second_str}

----比對所有

#!/bin/bash
first_str="The secret code is 123456"
second_str="X"
echo "${first_str//[0-9]/(second_str)}"
#輸出
The secret code is XXXXXX
           

注意轉義字元:當查找中出現了---->

”/”

請加轉義符

”\/”

表示。

字元串删除

  • ${變量名#substring正規表達式}

    從字元串開頭開始配備

    substring

    ,删除比對上的表達式。

    ${變量名%substring正規表達式}

    從字元串結尾開始配備

    substring

    ,删除比對上的表達式。

    注意:

    ${redis_file##*/},${redis_file%/*}

    分别是得到檔案名,或者目錄位址最簡單方法。
    $ redis_file=c:/windows/src/redis-2.8.4.tar.gz
    $ echo ${redis_file#/}
    c:/windows/src/redis-2.8.4.tar.gz
    $ echo ${redis_file#*/}
    windows/src/redis-2.8.4.tar.gz
    $ echo ${redis_file##*/}
    redis-2.8.4.tar.gz
    echo ${redis_file%/*}
    c:/windows/src
    $ echo ${redis_file%%/*}
    c:
               

改變大小寫

文法:

  • 轉為大寫 -------

    {varname^^}

  • 轉為小寫--------

    {varname,,}