Shell替换:Shell变量替换,命令替换,转义字符
生活随笔
收集整理的這篇文章主要介紹了
Shell替换:Shell变量替换,命令替换,转义字符
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
如果表達式中包含特殊字符,Shell 將會進行替換。例如,在雙引號中使用變量就是一種替換,轉義字符也是一種替換。
舉個例子:#!/bin/bash a=10 echo -e "Value of a is $a \n"
運行結果:
Value of a is 10
這里 -e 表示對轉義字符進行替換。如果不使用 -e 選項,將會原樣輸出:
Value of a is 10\n
下面的轉義字符都可以用在 echo 中:
可以使用 echo 命令的 -E 選項禁止轉義,默認也是不轉義的;使用 -n 選項可以禁止插入換行符。
命令替換的語法:`command`
注意是反引號,不是單引號,這個鍵位于 Esc 鍵下方。
下面的例子中,將命令執行結果保存在變量中:#!/bin/bash DATE=`date` echo "Date is $DATE" USERS=`who | wc -l` echo "Logged in user are $USERS" UP=`date ; uptime` echo "Uptime is $UP"
運行結果:
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
可以使用的變量替換形式:
請看下面的例子: #!/bin/bashecho ${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}" 運行結果:Variable is not set 1 - Value of var is Variable is not set 2 - Value of var is Variable is not set 3 - Value of var is This is default value 4 - Value of var is Prefix Prefix 5 - Value of var is Prefix
舉個例子:
下面的轉義字符都可以用在 echo 中:
| \\ | 反斜杠 |
| \a | 警報,響鈴 |
| \b | 退格(刪除鍵) |
| \f | 換頁(FF),將當前位置移到下頁開頭 |
| \n | 換行 |
| \r | 回車 |
| \t | 水平制表符(tab鍵)? |
| \v | 垂直制表符 |
命令替換
命令替換是指Shell可以先執行命令,將輸出結果暫時保存,在適當的地方輸出。命令替換的語法:
下面的例子中,將命令執行結果保存在變量中:
變量替換
變量替換可以根據變量的狀態(是否為空、是否定義等)來改變它的值可以使用的變量替換形式:
| ${var} | 變量本來的值 |
| ${var:-word} | 如果變量 var 為空或已被刪除(unset),那么返回?word,但不改變?var 的值。 |
| ${var:=word} | 如果變量 var 為空或已被刪除(unset),那么返回 word,并將 var 的值設置為 word。 |
| ${var:?message} | 如果變量 var 為空或已被刪除(unset),那么將消息 message 送到標準錯誤輸出,可以用來檢測變量 var 是否可以被正常賦值。 若此替換出現在Shell腳本中,那么腳本將停止運行。 |
| ${var:+word} | 如果變量 var 被定義,那么返回 word,但不改變 var 的值。 |
請看下面的例子: #!/bin/bashecho ${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}" 運行結果:
總結
以上是生活随笔為你收集整理的Shell替换:Shell变量替换,命令替换,转义字符的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Shell特殊变量:Shell $0,
- 下一篇: Shell运算符:Shell算数运算符、