如何从b =“a = 2”中提取值2并将其分配给Bash中的变量a

时间:2012-01-11 07:19:23

标签: linux bash

只是一个愚蠢的问题。提供代码段

b="a=2"

如何提取值2并将其分配给变量a

6 个答案:

答案 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"