国产欧美日韩第一页|日本一二三不卡视频|在线精品小视频,亚洲第一免费播放区,metcn人体亚洲一区,亚洲精品午夜视频

幫助中心 >  技術(shù)知識(shí)庫(kù) >  云服務(wù)器 >  服務(wù)器教程 >  Shell替換:Shell變量替換,命令替換,轉(zhuǎn)義字符

Shell替換:Shell變量替換,命令替換,轉(zhuǎn)義字符

2016-10-04 20:58:48 6321

如果表達(dá)式中包含特殊字符,Shell 將會(huì)進(jìn)行替換。例如,在雙引號(hào)中使用變量就?一種替換,轉(zhuǎn)義字符也是一種替換。

舉個(gè)例子:

#!/bin/basha=10echo -e "Value of a is $a 
"

運(yùn)行結(jié)果:

Value of a is 10

這里 -e 表示對(duì)轉(zhuǎn)義字符進(jìn)行替換。如果不使用 -e 選項(xiàng),將會(huì)原樣輸出:

Value of a is 10


下面的轉(zhuǎn)義字符都可以用在 echo 中:

轉(zhuǎn)義字符含義
\反斜杠
a警報(bào),響鈴
退格(刪除鍵)
f換頁(yè)(FF),將當(dāng)前位置移到下頁(yè)開(kāi)頭
換行
回車(chē)
水平制表符(tab鍵) 
v垂直制表符

可以使用 echo 命令的 -E 選項(xiàng)禁止轉(zhuǎn)義,默認(rèn)也是不轉(zhuǎn)義的;使用 -n 選項(xiàng)可以禁止插入換行符。

命令替換

命令替換是指Shell可以先執(zhí)行命令,將輸出結(jié)果暫時(shí)保存,在適當(dāng)?shù)牡胤捷敵觥?br/>
命令替換的語(yǔ)法:

`command`

注意是反引號(hào),不是單引號(hào),這個(gè)鍵位于 Esc 鍵下方。

下面的例子中,將命令執(zhí)行結(jié)果保存在變量中:

#!/bin/bashDATE=`date`echo "Date is $DATE"USERS=`who | wc -l`echo "Logged in user are $USERS"UP=`date ; uptime`echo "Uptime is $UP"

運(yùn)行結(jié)果:

Date is Thu Jul  2 03:59:57 MST 2009
Logged in user are 1
Uptime is Thu Jul  2 03:59:57 MST 2009
03:59:57 up 20 days, 14:03,  1 user,  load avg: 0.13, 0.07, 0.15

變量替換

變量替換可以根據(jù)變量的狀態(tài)(是否為空、是否定義等)來(lái)改變它的值

可以使用的變量替換形式:

形式說(shuō)明
${var}變量本來(lái)的值
${var:-word}如果變量 var 為空或已被刪除(unset),那么返回 word,但不改變 var 的值。
${var:=word}如果變量 var 為空或已被刪除(unset),那么返回 word,并將 var 的值設(shè)置為 word。
${var:?message}如果變量 var 為空或已被刪除(unset),那么將消息 message 送到標(biāo)準(zhǔn)錯(cuò)誤輸出,可以用來(lái)檢測(cè)變量 var 是否可以被正常賦值。
若此替換出現(xiàn)在Shell腳本中,那么腳本將停止運(yùn)行。
${var:+word}如果變量 var 被定義,那么返回 word,但不改變 var 的值。


請(qǐng)看下面的例子:

#!/bin/bash

echo ${var:-"Variable is not set"}
echo "1 - Value of var is ${var}"

echo ${var:="Variable is not set"}
echo "2 - Value of var is ${var}"

unset var
echo ${var:+"This is default value"}
echo "3 - Value of var is $var"

var="Prefix"
echo ${var:+"This is default value"}
echo "4 - Value of var is $var"

echo ${var:?"Print this message"}
echo "5 - Value of var is ${var}"

運(yùn)行結(jié)果:

純文本復(fù)制
Variable is not set1 - Value of var isVariable is not set2 - Value of var is Variable is not set3 - Value of var isThis is default value4 - Value of var is PrefixPrefix5 - Value of var is Prefix


提交成功!非常感謝您的反饋,我們會(huì)繼續(xù)努力做到更好!

這條文檔是否有幫助解決問(wèn)題?

非常抱歉未能幫助到您。為了給您提供更好的服務(wù),我們很需要您進(jìn)一步的反饋信息:

在文檔使用中是否遇到以下問(wèn)題: