我试图编写一个bash脚本,迭代参数并构建如下字符串:
用法:
./myScript a b c d
预期产出:
-e "a" -e "b" -e "c" -e "d"
该脚本如下所示:
#!/bin/bash
pattern=""
for arg in "$@" do
pattern=$pattern" -e \"$arg\""
done
echo $pattern
实际输出错过了第一个-e
,即输出为:
"a" -e "b" -e "c" -e "d"
我做错了什么?追加-e
的正确方法是什么?
答案 0 :(得分:3)
你没有做错任何事。只是echo
将-e
作为参数*。
$ pattern='-e asdf -e ghjk'
$ echo $pattern
asdf -e ghjk
如果你引用变量,它会按预期工作。
$ echo "$pattern"
-e asdf -e ghjk
* man echo
-e启用反斜杠转义的解释