追加' -e'到bash脚本中的字符串

时间:2015-10-23 13:10:46

标签: bash

我试图编写一个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的正确方法是什么?

1 个答案:

答案 0 :(得分:3)

你没有做错任何事。只是echo-e作为参数*。

$ pattern='-e asdf -e ghjk'
$ echo $pattern
asdf -e ghjk

如果你引用变量,它会按预期工作。

$ echo "$pattern"
-e asdf -e ghjk

* man echo

  

-e启用反斜杠转义的解释