Linux中特殊符號的作用

1 $? $# $* $n $0

  1. $?表示上一次的輸出結果,若爲0:表示成功;不是0,表示失敗
  2. $#表示腳本中參數的個數
  3. $*表示對應參數的值
  4. $n表示爲(n>=1)的參數
  5. $0表示腳本名
###這是測試腳本
#!/bin/sh
echo 這是腳本名字:$0
echo 總共有$#個人,分別是$*
echo 第一個人是$1,第二個人是$2
### 這是運行結果
這是腳本名字:sympol.sh
總共有2個人,分別是李四 張三
第一個人是李四,第二個人是張三

$?的測試:
在這裏插入圖片描述

2 分號

分號是多個語句之間的分隔符號,當只有一個語句的時候,末尾無需分號,最後一個語句後面也無需分號,否則報錯

3 引號

單引號中是原始字符串
雙引號可以對特殊字符進行擴展
一般不寫的就是當雙引號用的

a=bcdef
echo $a # 輸出bcdef
echo "$a" #雙引號將進行變量擴展 ,輸出bcdef
echo '$a' #單引號直接輸出$a

4 括號的作用

4.1 命令替換

$( ) 和反引號`(tab按鍵上面) 作用相同:命令替換
在這裏插入圖片描述

4.2 數值運算

  • $(( ))是整數數值運算,也可用(( )) 代替
  • $[ ]也是進行數學運算的;

4.3 test運算

[ ]是代替test運算符的,也可用[[ ]]代替,使用雙中括號,邏輯更加嚴謹

4.4 ${}

4.4.1 界定符號

${}界定符號,比如$ab,就相當於${ab},而${a}b纔是只取a的值
對於linux符號的使用例子,可以參考本人的linux小遊戲來熟悉

4.4.2 取路徑,文件名,後綴

#假設一個變量名爲file
file=/dir1/dir2/dir3/my.file.txt
${file#*/}:刪掉第一個 / 及其左邊的字符串:dir1/dir2/dir3/my.file.txt
${file##*/}:刪掉最後一個 / 及其左邊的字符串:my.file.txt
${file#*.}:刪掉第一個 . 及其左邊的字符串:file.txt
${file##*.}:刪掉最後一個 . 及其左邊的字符串:txt
${file%/*}:刪掉最後一個 / 及其右邊的字符串:/dir1/dir2/dir3
${file%%/*}:刪掉第一個 / 及其右邊的字符串:(空值)
${file%.*}:刪掉最後一個 . 及其右邊的字符串:/dir1/dir2/dir3/my.file
${file%%.*}:刪掉第一個 . 及其右邊的字符串:/dir1/dir2/dir3/my

記憶的方法爲:

  • # 表示從左邊算起第一個(鍵盤上#$的左邊,要注意使用#時,刪除符號*放在標誌符號(/或.)左邊)
  • ##:表示從左邊算起最後一個
  • %表示從右邊算起第一個(鍵盤上%$ 的右邊,要注意使用%時,刪除符號*放在標誌符號(/或.)右邊)
  • %%:表示從右邊算起最後一個
  • 單一符號是最小匹配兩個符號是最大匹配
  • *:表示要刪除的內容,對於###的情況,它位於指定的字符(例子中的'/'和'.')的左邊,表示刪除指定字符及其左邊的內容;對於%%%的情況,它位於指定的字符(例子中的'/'和'.')的右邊,表示刪除指定字符及其右邊的內容。這裏的*的位置不能互換,即不能把*號放在###的右邊,反之亦然。

5 與(&)或(|)

5.1 與&

  • &:表示任務在後臺執行,在後臺運行,redis-server &
  • &&:表示前一條命令執行成功時,才執行後一條命令,如:echo '1' && echo '2'

5.2 或|

  • |:表示管道符,上一條命令的輸出作爲下一條命令參數
  • ||:表示上一條命令執行失敗後,才執行下一條命令,如:cat nofile || echo '1'
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章