- 工信部備案號 滇ICP備05000110號-1
- 滇公安備案 滇53010302000111
- 增值電信業(yè)務(wù)經(jīng)營許可證 B1.B2-20181647、滇B1.B2-20190004
- 云南互聯(lián)網(wǎng)協(xié)會理事單位
- 安全聯(lián)盟認證網(wǎng)站身份V標(biāo)記
- 域名注冊服務(wù)機構(gòu)許可:滇D3-20230001
- 代理域名注冊服務(wù)機構(gòu):新網(wǎng)數(shù)碼
如果表達式中包含特殊字符,Shell 將會進行替換。例如,在雙引號中使用變量就?一種替換,轉(zhuǎn)義字符也是一種替換。
舉個例子:
#!/bin/basha=10echo -e "Value of a is $a "
運行結(jié)果:
Value of a is 10
這里 -e 表示對轉(zhuǎn)義字符進行替換。如果不使用 -e 選項,將會原樣輸出:
Value of a is 10
下面的轉(zhuǎn)義字符都可以用在 echo 中:
轉(zhuǎn)義字符 | 含義 |
---|---|
\ | 反斜杠 |
a | 警報,響鈴 |
退格(刪除鍵) | |
f | 換頁(FF),將當(dāng)前位置移到下頁開頭 |
換行 | |
回車 | |
水平制表符(tab鍵) | |
v | 垂直制表符 |
可以使用 echo 命令的 -E 選項禁止轉(zhuǎn)義,默認也是不轉(zhuǎn)義的;使用 -n 選項可以禁止插入換行符。
命令替換是指Shell可以先執(zhí)行命令,將輸出結(jié)果暫時保存,在適當(dāng)?shù)牡胤捷敵觥?br/>
命令替換的語法:
`command`
注意是反引號,不是單引號,這個鍵位于 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"
運行結(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)(是否為空、是否定義等)來改變它的值
可以使用的變量替換形式:
形式 | 說明 |
---|---|
${var} | 變量本來的值 |
${var:-word} | 如果變量 var 為空或已被刪除(unset),那么返回 word,但不改變 var 的值。 |
${var:=word} | 如果變量 var 為空或已被刪除(unset),那么返回 word,并將 var 的值設(shè)置為 word。 |
${var:?message} | 如果變量 var 為空或已被刪除(unset),那么將消息 message 送到標(biāo)準錯誤輸出,可以用來檢測變量 var 是否可以被正常賦值。 若此替換出現(xiàn)在Shell腳本中,那么腳本將停止運行。 |
${var:+word} | 如果變量 var 被定義,那么返回 word,但不改變 var 的值。 |
請看下面的例子:
#!/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}"
運行結(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
售前咨詢
售后咨詢
備案咨詢
二維碼
TOP