1. 程式人生 > >Shell編程筆記

Shell編程筆記

shell 腳本 取字符 span log 出現 ado bcd 獲取字符串 只讀

#!/bin/bash
echo "Hello World !"

1、作為可執行程序

將上面的代碼保存為 test.sh,並 cd 到相應目錄:

chmod u+x ./test.sh  #使腳本具有執行權限
./test.sh  #執行腳本

2、作為解釋器參數

這種運行方式是,直接運行解釋器,其參數就是 shell 腳本的文件名,如:

/bin/sh test.sh
/bin/php test.php

使用變量

your_name="qinjx"
echo $your_name
echo ${your_name}
echo "I am good at ${your_name}Script"
readonly修飾為只讀
unset 命令可以刪除變量
unset variable_name

單引號字符串的限制:

  • 單引號裏的任何字符都會原樣輸出,單引號字符串中的變量是無效的;
  • 單引號字串中不能出現單引號(對單引號使用轉義符後也不行)。

雙引號的優點:

  • 雙引號裏可以有變量
  • 雙引號裏可以出現轉義字符

拼接字符串

your_name="qinjx"
greeting="hello, "$your_name" !"
greeting_1="hello, ${your_name} !"
echo $greeting $greeting_1

獲取字符串長度用#

string="abcd"
echo ${#string} #輸出 4
string="runoob is a great site"
echo ${string:1:4} # 輸出 unoo
string="runoob is a great company"
echo `expr index "$string" is`  # 查找is,輸出 8。腳本中 "`" 是反引號,而不是單引號 "‘"

數組

array_name=(value0 value1 value2 value3)
array_name[0]=value0
array_name[1]=value1
array_name[n]=valuen

讀取數組的值

valuen=${array_name[n]}

[email protected],例如:

echo ${array_name[@]}
# 取得數組元素的個數
length=${#array_name[@]}
# 或者
length=${#array_name[*]}

截取字符串

1. # 號截取,刪除左邊字符,保留右邊字符。
echo ${var#*//}
其中 var 是變量名,# 號是運算符,*// 表示從左邊開始刪除第一個 // 號及左邊的所有字符
即刪除 http://
結果是 :www.aaa.com/123.htm
2. ## 號截取,刪除左邊字符,保留右邊字符。
echo ${var##*/}
##*/ 表示從左邊開始刪除最後(最右邊)一個 / 號及左邊的所有字符
即刪除 http://www.aaa.com/
結果是 123.htm
3. %號截取,刪除右邊字符,保留左邊字符
echo ${var%/*}
%/* 表示從右邊開始,刪除第一個 / 號及右邊的字符
結果是:http://www.aaa.com
4. %% 號截取,刪除右邊字符,保留左邊字符
echo ${var%%/*}
%%/* 表示從右邊開始,刪除最後(最左邊)一個 / 號及右邊的字符
結果是:http:
5. 從左邊第幾個字符開始,及字符的個數
echo ${var:0:5}
其中的 0 表示左邊第一個字符開始,5 表示字符的總個數。
結果是:http:

 


Shell編程筆記