我有一个文件(虚构):
test() {
echo ${%%NUMBER%%}
}
我需要:
%%NUMBER%%
为数字我该怎么做:
#!/bin/bash
# Full path of this script
FILE=`readlink -f "${BASH_SOURCE[0]}"`
# This directory path
DIR=`dirname "${FILE}"`
repl() {
STRING=$(cat $DIR/skel.txt)
STRING=$(echo $STRING | sed "s/%%NUMBER%%/$1/")
echo $STRING
}
# try it
repl 50 > ./out.sh
# tried as well:
# repl 50 | tee ./out.sh
# echo "$(repl 50)" > ./out.sh
# STRING=$(echo -e $STRING | sed "s/%%NUMBER%%/$1/")
但是我总是将所有内容放在out.sh
文件的一行中。需要它保持多行,如在源中。
谢谢。
试试这个:
repl() {
sed "s/%%NUMBER%%/$1/" "$DIR/skel.txt"
}
这样效率更高,而且不会吃掉您宝贵的换行符。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句