Bash脚本,用于使用参数在文件中创建文本

时间:2012-03-02 18:06:42

标签: bash

想象一下,除了一个变量之外,你必须在文件中创建许多具有相同文本的行:

foo text $variable bar text
foo text $variable bar text
foo text $variable bar text
...

我想知道是否可以使用bash脚本将变量作为参数传递:

./my_script '1'
./my_script '2'
./my_script '3'

哪会产生这个:

foo text 1 bar text
foo text 2 bar text
foo text 3 bar text

有关如何执行此操作的任何建议或示例?

5 个答案:

答案 0 :(得分:1)

另见http://tldp.org/LDP/abs/html/internalvariables.html#POSPARAMREF

#!/bin/bash

echo "foo text ${1} bar text"

答案 1 :(得分:1)

为脚本编写脚本是一项非常简单的任务。

以下是一些可能的解决方案:

for (( variable=1; variable<10; ++variable )); do
  echo foo text $variable bar text
done

...或

for name in Dave Susan Peter Paul; do
  echo "Did you know that $name is coming to my party?"
done

答案 2 :(得分:1)

这可能对您有用:

printf "foo text %d bar text\n" {1..10}
foo text 1 bar text
foo text 2 bar text
foo text 3 bar text
foo text 4 bar text
foo text 5 bar text
foo text 6 bar text
foo text 7 bar text
foo text 8 bar text
foo text 9 bar text
foo text 10 bar text

或者这个:

printf "foo text %s bar text\n" foo bar baz
foo text foo bar text
foo text bar bar text
foo text baz bar text 

答案 3 :(得分:1)

假设你遇到了那个糟糕的模板文件:

perl -pe 'BEGIN {$count=0} s/\$variable/ ++$count /ge' file

答案 4 :(得分:0)

这取决于你如何获得“foo text”和“bar text”。如果是静态设置:

var="foo text $1 bar text"
echo "$var"

或者,如果它在单独的变量中,您可以连接它们:

foo="foo text"
bar="bar text"
output="$foo $1 $bar"
echo "$output"