C語言中文網 目錄
首頁 > Shell腳本 閱讀:7,061

Shell字符串詳解

< 上一頁Shell $? Shell字符串拼接下一頁 >

字符串(String)就是一系列字符的組合。字符串是 Shell 編程中最常用的數據類型之一(除了數字和字符串,也沒有其他類型了)。

字符串可以由單引號' '包圍,也可以由雙引號" "包圍,也可以不用引號。它們之間是有區別的,稍后我們會詳解。

字符串舉例:
str1=www.frifeb11.com
str2="shell script"
str3='C語言中文網'

下面我們說一下三種形式的區別:

1) 由單引號' '包圍的字符串:
  • 任何字符都會原樣輸出,在其中使用變量是無效的。
  • 字符串中不能出現單引號,即使對單引號進行轉義也不行。

2) 由雙引號" "包圍的字符串:
  • 如果其中包含了某個變量,那么該變量會被解析(得到該變量的值),而不是原樣輸出。
  • 字符串中可以出現雙引號,只要它被轉義了就行。

3) 不被引號包圍的字符串
  • 不被引號包圍的字符串中出現變量時也會被解析,這一點和雙引號" "包圍的字符串一樣。
  • 字符串中不能出現空格,否則空格后邊的會作為其他變量或者字符串解析。

我們通過代碼來演示一下三種形式的區別:
#!/bin/bash

n=74
str1=www.frifeb11.com$n str2="shell \"script\" $n"
str3='C語言中文網 $n'

echo $str1
echo $str2
echo $str3
運行結果:

www.frifeb11.com74
shell "script" 74
C語言中文網 $n


str1 中包含了$n,它被解析為變量 n 的引用。$n后邊有空格,緊隨空格的 str2;Shell 將 str2 解釋為一個新的變量名,而不是作為字符串 str1 的一部分。

str2 中包含了引號,但是被轉義了(由反斜杠\開頭的表示轉義字符)。str2 中也包含了$n,它也被解析為變量 n 的引用。

str3 中也包含了$n,但是僅僅是作為普通字符,并沒有解析為變量 n 的引用。

獲取字符串長度

在 Shell 中獲取字符串長度很簡單,具體方法如下:

${#string_name}

string_name 表示字符串名字。

下面是具體的演示:
#!/bin/bash

str="http://www.frifeb11.com/shell/"
echo ${#str}
運行結果:
29
< 上一頁Shell $? Shell字符串拼接下一頁 >

精美而實用的網站,提供C語言、C++、STL、Linux、Shell、Java、Go語言等教程,以及socket、GCC、vi、Swing、設計模式、JSP等專題。

Copyright ?2011-2018 biancheng.net, 陜ICP備15000209號

底部Logo