我有一个像这样的文本文件:
melon = [2 2 4 5];
apple = [3 6 4 4];
lemon = [1 5 4 8];
我想创建一个将命名变量读入 bash 数组的函数。这就是我想出的 - 这不起作用,因为变量$FruitToParse
没有扩展:
#!/bin/bash
set -e
set -u
function file_to_array {
local FileToParse=${1}
local FruitToParse=${2}
for i in `cat ${FileToParse} | sed -n -e 's/.*${FruitToParse} = \[\(.*\)\];/\1/p'`); do
echo ${i}
done
}
file_to_array fruits.txt apple
答案1
在 sed 上使用双引号而不是单引号;
$ bob="cool"; echo "bob is sad" | sed "s/sad/$bob/"
bob is cool