Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
你知道我如何在 sed 中使用反向引用作为变量名吗?
我尝试了什么:
#!/bin/bash var_one=x var_two=y var_three=z echo "var_one + var_two = var_three" | sed -e "s/\(var_[^\ ]*\)/$\1/g"
我得到了什么:
$var_one + $var_two = $var_three
我想得到什么:
x + y = z
目前尚不清楚您真正想要做什么,但如果您只想在字符串中创建一些变量,然后评估字符串以扩展变量,那么您想使用eval。例如:
#!/bin/bash var_one=x var_two=y var_three=z result=$( echo "var_one + var_two = var_three" | sed -e "s/\(var_[^\ ]*\)/$\1/g" ) eval "echo $result"
使用eval有很多陷阱。但是,此代码肯定可以解决您所描述的问题。