《鳥哥的Linux私房菜》之shell中的變數
阿新 • • 發佈:2018-12-15
1、變數的定義 var=value 直接使用key=value的形式,等號中間不能有空格等空白字元 2、變數的輸出 echo ${varName} 通過echo輸出內容 ${xxx}表示引用某個叫xxx的變數 Note:如果echo 後是'',那麼單引號內的內容原樣輸出 ,如果是""那麼雙引號內的內容可能會經過"計算"後再 輸出,如果要輸出的內容有特殊字元要麼通過轉義字元使用單引號 3、取消變數 unset varName 4、$( someCommand ) 或者 ` someCommand ` 表示先執行()和``中間的命令 5、使用env/set/export檢視環境變數 6、$RANDOM生成隨機數 7、$表示當前程序的PID,?表示上一條命令的返回值(0代表成功,否則代表失敗) 所以可以使用$?獲取上一條命令的執行成功與否 8、預設情況下,子shell是不能訪問父shell的變數的,如果想讓子shell訪問父shell的環境變數,那麼久需要 在父shell中export該變數 9、在shell中定義陣列變數使用,shell中的下標從1開始 v[1]="A" v[2]="B" v[3]="C" 10、如果需要限制使用者的使用資源可以使用ulimit命令(用到的時候在查) 11、變數內容的刪除/替換/ v=/root/lyzx/bin:/root/lyzx/sbin:/home/prod/bin:/home/prod/sbin echo ${v} echo ${v#/*bin:} => /root/lyzx/sbin:/home/prod/bin:/home/prod/sbin echo ${v##/*bin:} => /home/prod/sbin 解釋: #表示從其前面的變數值得最左邊開始往後刪除,刪除最短的距離 ##表示從其前面的變數值得最左邊開始往後刪除,刪除最長的距離 v=/root/lyzx/bin:/root/lyzx/sbin:/home/prod/bin:/home/prod/sbin echo ${v} echo ${v%:/*bin:} => /root/lyzx/bin:/root/lyzx/sbin echo ${v%%:/*sbin:} => /root/lyzx/bin 解釋: %表示從其最後面往前刪除,刪除最短的距離 %%表示從其後面往前刪除,刪除最長的距離 v=/root/lyzx/bin:/root/lyzx/sbin:/home/prod/bin:/home/prod/sbin ${v} ${v/sbin/SBIN} => /root/lyzx/bin:/root/lyzx/SBIN:/home/prod/bin:/home/prod/sbin ${v/sbin//SBIN} => /root/lyzx/bin:/root/lyzx/SBIN:/home/prod/bin:/home/prod/SBIN 解釋: / 表示把其後的替換為最後的文字,只替換第一個 //表示把其後的替換為最後的文字,替換所有 echo ${v-v1} //當v變數沒有定義時,返回v1 echo ${v:-v1} //當v變數沒有定義、或者為空字串時,返回v1