我在bash
腳本中測試了一些字符串操作的東西,我很快意識到它不理解正則表達式(至少不是用於字符串操作的語法),然後我嘗試了一些glob表達式它似乎明白其中的一些,有些則沒有。具體而言:
FINAL_STRING=${FINAL_STRING//<title>/$(get_title)}
是我想要使用的主要操作和上面的線工作,與$(get_title)
上$FINAL_STRING
更換的<title>
所有出現......和
local field=${1/#*:::/}
作品,分配$1
從一開始到第一次出現:::
都沒有任何東西(刪除)。但#
做我所期望的^
要做。 加當我試圖在這裏使用的{,,}
全局正則表達式:
FINAL_STRING=${FINAL_STRING//{<suffix>,<extension>}/${SUFFIX}}
通過${SUFFIX}
取代的<suffix>
OR <extension>
任何事件,它的工作原理不是。
所以我看到它不需要正則表達式,它也不採用全局模式...所以它需要什麼?是否有任何符號/表達式被純粹的bash字符串操作理解的詳盡列表(特別是子字符串替換)?或者是*
,?
,#
,##
,%
和%%
唯一有效的東西?
(我想只依靠普通的bash,而不調用sed
或grep
做我想做什麼)
一個好的StackOverflow問題範圍有限 - 要求完整詳盡的子語言列表足夠寬泛,因此有資格被關閉。也就是說,如果你想*在bash中對本地字符串操作進行擴展討論,BashFAQ#100提供了這樣的內容:http://mywiki.wooledge.org/BashFAQ/100 –
參數擴展的bash-hackers頁面也非常棒參考:http://wiki.bash-hackers.org/syntax/pe –
至於在體育用品內部使用撐杆擴展,我不知道你爲什麼期望首先工作。 Brace擴展**創建多個單詞**;一個參數擴展解析爲多個單詞是不允許的。 –