我想使用eval. 以下虚拟示例有效:
var_name="fruit"
var_value="orange"
eval $(echo $var_name=$var_value)
echo $fruit
orange
Run Code Online (Sandbox Code Playgroud)
但是,当变量值包含空格时eval,即使$var_value放在双引号之间,也会返回错误:
var_name="fruit"
var_value="blue orange"
eval $(echo $var_name="$var_value")
bash: orange : command not found
Run Code Online (Sandbox Code Playgroud)
有什么办法可以绕过这个吗?
输入:
注意:2 列由制表符分隔,常规空格分隔第 2 列中的单词。
1 the mouse is dead
2 hit the wall
3 winter lasts forever
Run Code Online (Sandbox Code Playgroud)
想要的输出:
1 the
1 mouse
1 is
1 dead
2 hit
2 the
2 wall
3 winter
3 lasts
3 forever
Run Code Online (Sandbox Code Playgroud)
这是awk要走的路吗?