我有简短的 bash 脚本,不会将“-e”传递给 awk:
str="Morgenstern"
ex = "-e "
for i in {1..11}
do
echo $(echo $str| awk -v vv="$i" -v xx="$ex" 'print xx substr ($0,vv,1)}')
done
结果应该是:
-e M
-e o
-e r
等等...
实际结果是
M
o
r
如果我将 ex 更改为“-b”,那么我会得到预期的结果。 (-b M 、-b o 等)
我还尝试在 awk 语句中硬编码“-e”,但结果相同。
如何让 awk 接受“-e”作为参数或文字?
问题是多余的
echo
,它通过$(…)
被传递
echo -e M
删除多余的
echo
。
str="Morgenstern"
ex="-e "
for i in {1..11}
do
echo $str | awk -v vv="$i" -v xx="$ex" '{ print xx substr ($0,vv,1) }'
done