亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
123下一頁(yè)
最近訪問(wèn)板塊 發(fā)新帖
查看: 6604 | 回復(fù): 23
打印 上一主題 下一主題

hello=$"${@// /\ }",參數(shù)處理 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2010-07-27 14:20 |只看該作者 |倒序?yàn)g覽
本帖最后由 xiaopan3322 于 2011-05-12 18:07 編輯

也可參看:http://scmbob.org/can_u_comprehend_it.html

最初是一個(gè)朋友告訴我他在Hadoop的配置腳本中看到了這么一句話:hello=$"${@// /\ }"
仔細(xì)研究了一下,發(fā)現(xiàn)還挺有意思,有興趣的一起來(lái)看看吧。
腳本:

  1. #!/bin/bash
  2. echo $"1"
  3. echo $1

  4. hello=$"${@// /\ }"
  5. echo -e "\n$hello"

  6. hello=${@// /\\ }
  7. echo -e "\n$hello"

  8. hello=${@// /\ }
  9. echo -e "\n$hello"

  10. echo $"${@//\$"2"/Hi Bob}"
  11. echo $"${@//$2/Hi Bob}"
復(fù)制代碼
輸出:

  1. [Bob@hzling05:~/test]-No.360-$ ./test "a b c d"
  2. 1
  3. a b c d

  4. a\ b\ c\ d

  5. a\ b\ c\ d

  6. a b c d
  7. a b c d
  8. a b c d
  9. [Bob@hzling05:~/test]-No.361-$ ./test a b c d  
  10. 1
  11. a

  12. a b c d

  13. a b c d

  14. a b c d
  15. a b c d
  16. a Hi Bob c d
復(fù)制代碼
腳本另存為 "test, 以下兩種情況運(yùn)行:
1: run as ./test "a b c d"
2: run as ./test a b c d
下面是我的分析,如有不對(duì)的地方,希望大家可以指出來(lái)
      1 #!/bin/bash
      2 echo -e "\n"
      3 echo $"1"                        #1, 僅輸出數(shù)字1; 2, 輸出數(shù)字1
      4 echo $1                                #1, output: a b c d; 2, output: a
      5
      5 hello=$"${@// /\ }" #1, 注意$"", 將空格替換為\+空格: a\ b\ c\ d; 2, output: a b c d
      6 echo -e "\n$hello"        #""的作用很明顯,使\不需要轉(zhuǎn)義
      7
      8 hello=${@// /\\ }        #1, 沒(méi)有$"", 將空格替換為\+空格: a\ b\ c\ d; 2, output: a b c d
      9 echo -e "\n$hello"        #沒(méi)有"",此時(shí)\需要\\轉(zhuǎn)義
     10
     11 echo -e "\n"
     12 hello=${@// /\ }        #由于沒(méi)有$"", \沒(méi)有轉(zhuǎn)義,空格替換空格,output不變, 1同2:  a b c d
     13 echo -e "\n$hello"
     14
     15 echo -e "\n"
         #將數(shù)字2替換為Hi Bob,因?yàn)闆](méi)有數(shù)字2, 所以1同2:  a b c d
     16 echo $"${@//\$"2"/Hi Bob}"
         #將輸入的第二個(gè)參數(shù)替換為Hi Bob,由于"a b c d"合起來(lái)屬于第一個(gè)參數(shù),所以1輸出: a b c d, 2輸出: a Hi Bob c d
     17 echo $"${@//$2/Hi Bob}"

評(píng)分

參與人數(shù) 1可用積分 +2 收起 理由
expert1 + 2 謝謝分享。!

查看全部評(píng)分

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2010-07-27 14:34 |只看該作者
學(xué)習(xí)了

論壇徽章:
16
IT運(yùn)維版塊每日發(fā)帖之星
日期:2015-08-24 06:20:00綜合交流區(qū)版塊每日發(fā)帖之星
日期:2015-10-14 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2015-10-25 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2015-11-06 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2015-12-10 06:20:00平安夜徽章
日期:2015-12-26 00:06:302016猴年福章徽章
日期:2016-02-18 15:30:34IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-04-15 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-05-21 06:20:00綜合交流區(qū)版塊每日發(fā)帖之星
日期:2016-08-16 06:20:002015七夕節(jié)徽章
日期:2015-08-21 11:06:17IT運(yùn)維版塊每日發(fā)帖之星
日期:2015-08-14 06:20:00
3 [報(bào)告]
發(fā)表于 2010-07-27 14:37 |只看該作者
受教了

論壇徽章:
0
4 [報(bào)告]
發(fā)表于 2010-07-27 15:37 |只看該作者
謝謝分享!

論壇徽章:
0
5 [報(bào)告]
發(fā)表于 2010-07-27 16:04 |只看該作者
回復(fù) 1# xiaopan3322


    能不能解釋下 hello=$"${@// /\ }"  為什么是將空格替換為 空格\ , 這是怎么個(gè)過(guò)程或者說(shuō)語(yǔ)法點(diǎn)

論壇徽章:
0
6 [報(bào)告]
發(fā)表于 2010-07-27 16:13 |只看該作者
本帖最后由 xiaopan3322 于 2010-07-27 16:24 編輯

回復(fù) 5# mr_caoke

沒(méi)有啥過(guò)程,shell中就是這么處理的,//后的東東替換為/后的東東,
這個(gè)沒(méi)法解釋哎,就好比下面這種情況類(lèi)似:
        使用# ## % %%進(jìn)行參數(shù)處理:
        #和## 從字符串的左邊開(kāi)始,并且去掉左邊的字符串,
        ${var#Pattern}, ${var##Pattern}
                                從$var 開(kāi)頭刪除最近或最遠(yuǎn)匹配$Pattern 的子串.
        % 和 %% 從字符串的右邊開(kāi)始,并且去掉右邊的子串.
        ${var%Pattern}, ${var%%Pattern}
                                從$var 結(jié)尾刪除最近或最遠(yuǎn)匹配$Pattern 的子串.

就是這么處理的,解釋不來(lái)的,我覺(jué)得記著就行了

論壇徽章:
0
7 [報(bào)告]
發(fā)表于 2010-07-27 16:15 |只看該作者
CUER果然是人才濟(jì)濟(jì)

論壇徽章:
5
2015年辭舊歲徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亞洲杯之朝鮮
日期:2015-03-13 22:47:33IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-01-09 06:20:00IT運(yùn)維版塊每周發(fā)帖之星
日期:2016-03-07 16:27:44
8 [報(bào)告]
發(fā)表于 2010-07-27 16:43 |只看該作者
不錯(cuò)。

是$"string"的作用,而$"sting"的解釋與locale有關(guān)。

論壇徽章:
5
2015年辭舊歲徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亞洲杯之朝鮮
日期:2015-03-13 22:47:33IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-01-09 06:20:00IT運(yùn)維版塊每周發(fā)帖之星
日期:2016-03-07 16:27:44
9 [報(bào)告]
發(fā)表于 2010-07-27 16:45 |只看該作者
本帖最后由 blackold 于 2010-07-27 16:52 編輯

回復(fù) 5# mr_caoke


    在當(dāng)前環(huán)境(與locale有關(guān))下,\<space>解釋為\<space>,而不是<sapce>


bash:
  1. $ echo -E :$"\ ":
  2. :\ :


  3. $ echo -E :\ :
  4. : :
復(fù)制代碼

論壇徽章:
5
2015年辭舊歲徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亞洲杯之朝鮮
日期:2015-03-13 22:47:33IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-01-09 06:20:00IT運(yùn)維版塊每周發(fā)帖之星
日期:2016-03-07 16:27:44
10 [報(bào)告]
發(fā)表于 2010-07-27 16:54 |只看該作者
回復(fù) 1# xiaopan3322


    想評(píng)分我沒(méi)有權(quán)力啊。
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專(zhuān)區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過(guò)ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP