shell基礎(chǔ)(三)

字符串

單引號和雙引號的區(qū)別:

單引號

單引號里的任何字符都會原樣輸出,不解析變量;
單引號字串中不能出現(xiàn)單引號(對單引號使用轉(zhuǎn)義符后也不行)。

雙引號

雙引號里可以解析變量
雙引號里可以出現(xiàn)轉(zhuǎn)義字符

拼接字符串

[root@bogon ~]# name="jack"
[root@bogon ~]# echo "你的名字是:$name"
你的名字是:jack
[root@bogon ~]# echo "你的名字是:${name}"
你的名字是:jack
[root@bogon ~]# echo "你的名字是:""$name"
你的名字是:jack
[root@bogon ~]# echo "你的名字是:"$name
你的名字是:jack

字符串最好放到雙引號中,防止中間有空格等情況。


info="${name}""${email}""${sex}"

total="$name""$email""$sex"

獲取字符串長度

${#name}

截取子字符串

[root@bogon ~]# echo "你的名字是:"$name
你的名字是:jack

[root@bogon ~]# echo "你的名字長度是""${#name}"
你的名字長度是4

[root@bogon ~]# echo "子字符串截取""${name:1:2}"
子字符串截取ac

[root@bogon ~]# echo `expr substr "$name" 2 2`
ac

數(shù)組

定義數(shù)組

在Shell中,用括號來表示數(shù)組,數(shù)組元素用“空格”符號分割開。

# 方式一
nameArr=('zhansan' 'lisi' 'wangwu' )

# 方式二
nameArr=(
    'jack'
    'mary'
    'andy'
)

# 方式三
nameArr[0]='芳芳'
nameArr[1]='花花'
nameArr[2]='翠翠'

讀取數(shù)組

# 索引讀取
echo '第一個姓名:'"${nameArr[0]}"

# 所有元素
echo '所有姓名:'"${nameArr[*]}"
echo '所有姓名:'"${nameArr[@]}"


數(shù)組長度

# 總長度
echo '姓名數(shù)量:'"${#nameArr[*]}"
echo '姓名數(shù)量:'"${#nameArr[@]}"

# 單個元素長度

echo '第一個姓名長度:'"${#nameArr[0]}"


echo命令

顯示轉(zhuǎn)義字符

echo "\"It is a test\"" 

顯示變量

echo "$name It is a test"
echo "${mouth}-1-2009"

顯示換行

echo "OK!\n"

顯示不換行

echo "OK!\c"
echo "It is a test"

顯示結(jié)果重定向至文件

echo "It is a test" > myfile

原樣輸出字符串

使用單引號。
echo '$name\"'

顯示命令執(zhí)行結(jié)果

echo `date`

printf命令

  • printf 命令用于格式化輸出, 是echo命令的增強(qiáng)版。
  • printf 由 POSIX 標(biāo)準(zhǔn)所定義,移植性要比 echo 好。
  • 不能自動換行
  • 功能和用法與 printf 命令類似

printf 命令的語法:

printf  format-string  [arguments...]
# format-string為雙引號
$ printf "%d %s\n" 1 "abc"
1 abc

# 單引號與雙引號效果一樣 
$ printf '%d %s\n' 1 "abc" 
1 abc

# 沒有引號也可以輸出
$ printf %s abcdef
abcdef

# 格式只指定了一個參數(shù),但多出的參數(shù)仍然會按照該格式輸出
$ printf %s abc def
abcdef
$ printf "%s\n" abc def
abc
def

# 如果沒有 arguments,那么 %s 用NULL代替,%d 用 0 代替
$ printf "%s and %d \n" 
and 0

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容