我有以下变量TABLES,有多行
TABLES="foobar
test
bar
foo
"
我有一个变量SKIP与这个sed
命令
$ echo $SKIP
/bar/d;/foo/d;
我想在sed上使用它,像这样
echo $TABLES | sed "$SKIP"
但是这没有返回任何结果!如果我将变量替换为当前内容,它会起作用
我做错了什么?
我做错了什么?
您没有引用变量扩展。未加引号的变量展开进行分词,也在换行符上分割展开的结果,将其变成单词。你在做:
echo foobar test bar foo | ...
因为echo
用空格连接参数,所以这实际上是一行。/bar/d
删除该行
引用变量展开以防止分字。使用shellcheck检查脚本
echo "$TABLES" | sed "$SKIP"