標籤:style blog color ar strong for 檔案 div sp
1. echo 參數
例子
ss=‘abc\n‘echo -e $ssabc #換行起作用echo $ssabc
2. 賦值時候=左右兩側不要帶空格
a = "hello" #錯誤a="hello"
3. shell運算
b=4let "c=$b+1"echo $c
4. 單引號和雙引號區別
單引號和雙引號一樣都是字串的界定符,而不是字元的界定符。單引號用於保持引號內所有字元的字面值,即使引號內的\和斷行符號也不例外。
舉例
bb="hello"echo "$bb"helloecho ‘$bb‘$bb
注意ecoh -e ‘$bb‘ 結果還是$bb,因為‘$bb‘就是字面值,不會轉義。
5. 數組
5.1 聲明、定義
- array[‘a‘]=1
- array=(‘a‘, ‘b‘)
- array=([1]=‘a‘ [2]=‘b‘)
5.2 訪問
- echo ${array[‘a‘]}
- echo ${array[0]}
5.3 遍曆
for var in ${array[*]}do echo $vardone
5.4 數組長度
num=${#array[@]}
對比:擷取字串長度:num=${#str}
6. Linux shell實現多線程
for ((i=0;i<5;i++)); do{ sleep 3; echo "hello" $i}donewait
對比
for ((i=0;i<5;i++)); do{ sleep 3; echo "hello" $i}&donewait
這個在上面的基礎上多加了一個後台執行&符號,此時5個迴圈任務並發執行,最後需要3s多一點的時間(效果非常明顯)。wait的作用是完成後台所有的任務後才往下執行,否則程式本身會等待。
7. 去除一行最後的‘\r‘
字串最後有個‘\r‘是非常噁心的,可以通過tr命令去掉
a="hello\r"echo $a | tr -d ‘\r‘hello\recho $a | tr -d "\r"hello\recho -e $a | tr -d ‘\r‘hello #轉移字元起作用echo -e $a | tr -d "\r"hello
8. 編譯shell檔案
bash -x ***.sh
+開頭的是編譯的中間過程,不帶+的為正常的輸出。效果非常明顯。
shell 雜碎命令整理