linux ( )含义,Linux的shell中$()、$[] 、${}分别是什么意思?
在bash中,$( )與` `(反引號(hào))都是用來作命令替換的。
命令替換與變量替換差不多,都是用來重組命令行的,先完成引號(hào)里的命令行,然后將其結(jié)果替換出來,再重組成新的命令行。
exp 1[root@localhost?~]#?echo?today?is?$(date?"+%Y-%m-%d")
today?is?2017-11-07[root@localhost?~]#?echo?today?is?`date?"+%Y-%m-%d"`
today?is?2017-11-07
$( )與``
在操作上,這兩者都是達(dá)到相應(yīng)的效果,但是建議使用$( ),理由如下:
``很容易與''搞混亂,尤其對(duì)初學(xué)者來說,而$( )比較直觀。
最后,$( )的弊端是,并不是所有的類unix系統(tǒng)都支持這種方式,但反引號(hào)是肯定支持的。
exp 2[root@localhost?~]#??echo?Linux?`echo?Shell?`echo?today?is?`date?"+%Y-%m-%d"```
Linux?Shellecho?today?is?2017-11-07?????#過多使用``會(huì)有問題
[root@localhost?~]#?echo?Linux?`echo?Shell?$(echo?today?is?$(date?"+%Y-%m-%d"))`
Linux?Shell?today?is?2017-11-07????``和$()混合使用
[root@localhost?~]#?echo?Linux?$(echo?Shell?$(echo?today?is?$(date?"+%Y-%m-%d")))
Linux?Shell?today?is?2017-11-07????#多個(gè)$()同時(shí)使用也不會(huì)有問題
${ }變量替換
一般情況下,$var與${var}是沒有區(qū)別的,但是用${ }會(huì)比較精確的界定變量名稱的范圍
exp 1[root@localhost?~]#?A=Linux
[root@localhost?~]#?echo?$AB????#表示變量AB
[root@localhost?~]#?echo?${A}B????#表示變量A后連接著B
LinuxB
取路徑、文件名、后綴
先賦值一個(gè)變量為一個(gè)路徑,如下:file=/dir1/dir2/dir3/my.file.txt
命令????解釋????結(jié)果
${file#*/}????拿掉第一條?/?及其左邊的字符串????dir1/dir2/dir3/my.file.txt
[root@localhost?~]#?echo?${file#*/}
dir1/dir2/dir3/my.file.txt
${file##*/}????拿掉最后一條?/?及其左邊的字符串????my.file.txt
[root@localhost?~]#?echo?${file##*/}
my.file.txt
${file#*.}????拿掉第一個(gè)?.?及其左邊的字符串????file.txt
[root@localhost?~]#?echo?${file#*.}file.txt
${file##*.}????拿掉最后一個(gè)?.?及其左邊的字符串????txt
[root@localhost?~]#?echo?${file##*.}
txt
${file%/*}????拿掉最后一條?/?及其右邊的字符串????/dir1/dir2/dir3
[root@localhost?~]#?echo?${file%/*}
/dir1/dir2/dir3
${file%%/*}????拿掉第一條?/?及其右邊的字符串????(空值)
[root@localhost?~]#?echo?${file%%/*}
(空值)
${file%.*}????拿掉最后一個(gè)?.?及其右邊的字符串????/dir1/dir2/dir3/my.file
[root@localhost?~]#?echo?${file%.*}
/dir1/dir2/dir3/my.file
${file%%.*}????拿掉第一個(gè)?.?及其右邊的字符串????/dir1/dir2/dir3/my
[root@localhost?~]#?echo?${file%%.*}
/dir1/dir2/dir3/my
記憶方法如下:
#?是去掉左邊(在鍵盤上?#?在?$?之左邊)
%?是去掉右邊(在鍵盤上?%?在?$?之右邊)
單一符號(hào)是最小匹配;兩個(gè)符號(hào)是最大匹配
*是用來匹配不要的字符,也就是想要去掉的那部分
還有指定字符分隔號(hào),與*配合,決定取哪部分
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的linux ( )含义,Linux的shell中$()、$[] 、${}分别是什么意思?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 蚂蚁集团宣布上市,一批人将实现财务自由!
- 下一篇: 支付宝办信用卡怎么查进度