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,,}