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

How to extract the value 2 from b=“a=2” and assign it to variable a in Bash

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

1
b="a=2"

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


我以提供ugly解决方案而闻名,所以我不会让你失望 -

1
2
3
[jaypal:~/Temp] a=$(awk '{print $(NF-1)}' FS='["=]' <<< 'b="a=2"')
[jaypal:~/Temp] echo $a
2

intense解决方案

1
2
3
[jaypal:~/Temp] a=$(awk -F= '{print $NF}' <<< $b)
[jaypal:~/Temp] echo $a
2


你可以只是评估代码..

1
eval $b


1
2
3
$ b="a=2"
$ var=${b##*=}; echo $var
2


1
a=${b#a=}

$b的值,删除前导文本a=; 将剩下的内容(2)分配给a


另一种便携式方案

1
2
3
IFS='='
set -- $b
let"$1=$2"

如果您正在寻找shell实用程序来执行类似的操作,则可以使用cut命令。

举个例子,试试:

echo"abcdefg"| 切-c3-5

其中-cN-M告诉cut命令返回N到M列,包括N和M.

REF:
什么linux shell命令返回字符串的一部分?

在Bash中提取子字符串