只是一个愚蠢的问题。提供代码段
b="a=2"
如何提取值2并将其分配给变量a
答案 0 :(得分:3)
你可以只是评估代码..
eval $b
答案 1 :(得分:3)
我以提供ugly
解决方案而闻名,所以我不会让你失望 -
[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
答案 2 :(得分:2)
a=${b#a=}
取$b
的值,删除主要文字a=
;将剩下的内容(2
)分配给a
。
答案 3 :(得分:2)
$ b="a=2"
$ var=${b##*=}; echo $var
2
答案 4 :(得分:1)
如果您正在寻找shell实用程序来执行类似的操作,则可以使用cut命令。
举个例子,试试:
echo“abcdefg”|切-c3-5
其中-cN-M告诉cut命令返回N到M列,包括。
REF: What linux shell command returns a part of a string? 和 Extract substring in Bash
答案 5 :(得分:1)
另一种便携式解决方案
IFS='='
set -- $b
let "$1=$2"