想象一下,你必須創建文件多行所有除了一個變量相同的文本文件中的創建文本bash腳本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
有關如何執行此操作的任何建議或示例?
想象一下,你必須創建文件多行所有除了一個變量相同的文本文件中的創建文本bash腳本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
有關如何執行此操作的任何建議或示例?
也http://tldp.org/LDP/abs/html/internalvariables.html#POSPARAMREF參見:
#!/bin/bash
echo "foo text ${1} bar text"
這將取決於您如何獲得「foo文本」和「欄文本」。如果設置靜態:
var="foo text $1 bar text"
echo "$var"
或者如果它是在不同的變量,你可以將它們連接起來:
foo="foo text"
bar="bar text"
output="$foo $1 $bar"
echo "$output"
它太瑣碎寫任務一個腳本。
這裏有幾個可能的解決方案:
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
這可能會爲你工作:
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
假設你堅持與蹩腳的模板文件:
perl -pe 'BEGIN {$count=0} s/\$variable/ ++$count /ge' file
非常好,正是我在找的東西:D – Bamboomy 2017-06-15 11:01:46
在我看來,有可能是表達你所要完成的代碼更好的方法。爲了創建N行文本,向腳本輸入N行調用似乎有很多工作。如果這就是你想要做的,那麼你的my_script就可以做一些像'cat >> output.file「foo text $ 1 bar text」'。或者你能更好地描述你可能真正想要的東西(?) – 2012-03-02 18:12:23
這可能是一個可能的解決方案嗎? '因爲我在{1..3};做回聲foo文本$ i bar文本;完成' – Gandaro 2012-03-02 18:31:39