回答
a=${b#a=}
取$b
值,去掉前導文本a=
;將剩下的(2
)分配給a
。
酷。這是一個優雅的解決方案。 thx – 2012-01-11 07:25:55
如果您正在尋找一個shell工具來做類似的事情,您可以使用cut命令。
爲了把你的例子,嘗試:
回聲 「ABCDEFG」 | cut -c3-5
其中-cN-M告訴cut命令返回列N到M(含)。
REF: What linux shell command returns a part of a string? 和 Extract substring in Bash
還有很多其他的方法.. – 2012-01-11 07:24:19
使用'cut'是一種強大的方法來做到這一點,因爲殼具有可以做到的內置功能。使用'bash'並仍然使用'cut',可以使用'a = $(cut -c3 <<< $ b)'來保存管道。對於其他方式來做到這一點,請參閱其他答案。 – 2012-01-11 07:28:01
你也可以檢查這個..我google搜索 http://ask.metafilter.com/80862/how-split-a-string-in-bash – 2012-01-11 07:29:51
$ b="a=2"
$ var=${b##*=}; echo $var
2
他想要他的變量叫'a',而不是'var' :) – 2012-01-11 07:24:32
無論如何,thx :-) – 2012-01-11 07:27:50
@JonathanLeffler我不能等到我拿到水晶球時纔打我100K rep =) – SiegeX 2012-01-11 07:31:43
我蜚聲給ugly
的解決方案,所以我不會dissapoint你 -
[jaypal:~/Temp] a=$(awk '{print $(NF-1)}' FS='["=]' <<< 'b="a=2"')
[jaypal:~/Temp] echo $a
2
少intense
解決方案
[jaypal:~/Temp] a=$(awk -F= '{print $NF}' <<< $b)
[jaypal:~/Temp] echo $a
2
另一便攜式解決方案
IFS='='
set -- $b
let "$1=$2"
- 1. 我有兩個變量a = 2 b = 2,現在我想(a + b)* 2並將其存儲在c變量中
- 2. 2個不同的A和B類。變量在類A中聲明。我想要獲取B中變量的值。
- 3. Matlab:基於矢量B中的值從矢量A提取值
- 4. 輸入(a + b)** 2,輸出a * a + a * b + b * a + b * b
- 5. 將A類設置值的值從A類設置爲B,並將B類的值返回給A
- 6. 在賦值A(:) = B中,A和B中元素的數量必須相同
- 7. 在賦值A(:) = B中,A和B中元素的數量必須相同
- 8. 將bash數組值賦給變量
- 9. 爲什麼(A - B)。^ 2在MATLAB中不等於(B - A)。^ 2?
- 10. BASH - 賦值給變量
- 11. Python:給定2個進程A和B,從B調用A中的函數
- 12. 多個賦值var a = b = b || {}在JavaScript
- 13. 選擇一行,其中,1 = A,2 = B OR 1 = B,2 =
- 14. 任何pythonic方式做「[['a',2],['b',1]] + [['b',2],['c',1]] = [['b',3 ],['a',2],['c',1]]「?
- 15. 如何從CSS顏色中提取r,g,b,a值?
- 16. 從{a-b,b-c,c-a}改變爲{(a,b),(b,c),(c,a)}?
- 17. 如何將B類變量傳遞給A類,如果A類擴展B類
- 18. 將值賦給awk變量
- 19. 如何將Vue.js 2組件的值賦給主實例變量?
- 20. BASH中的變量賦值
- 21. 查找變量B的對應值A
- 22. C,將一個指向的值賦給一個指向的值,比如* a = * b;
- 23. ruby中a = 1,b = 2和a = 1(換行符)b = 2之間的差異
- 24. 爲什麼「int a,b;」而「int c = a-b」在我給「a」和「b」賦值時不工作?
- 25. 如何獲取ResultSet的整數值並將其賦值給一個int變量?
- 26. 如何使從2個表A添加並插入值,以其中的一個
- 27. 使變量值A = B統一
- 28. 將類型賦值給變量 - 'A'是一種類型,但用作'變量'?
- 29. 如果變量$ a等於5並且變量$ b等於字符a,那麼$$ b的值是多少?
- 30. 如何從HTML表單中獲取值並將其賦值給JS中的全局變量?
咦?你想要一個bash腳本來做到這一點,或一個編譯的程序? – wallyk 2012-01-11 07:21:34
只是Bash而已。你有什麼想法 – 2012-01-11 07:23:07