想象一下,除了一个变量之外,你必须在文件中创建许多具有相同文本的行:
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
有关如何执行此操作的任何建议或示例?
答案 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"