シェルスクリプトでシェル変数を使ったテンプレートに文字を埋め込む簡単なお仕事。
evalとかすごく格好悪いけど、自分用にお手軽に。
スクリプト template.sh
#!/bin/sh
TEMPLATE=template_yaml.txt
BUFIFS=${IFS}
grep -v '^#' $1 | while read NAME ADDRESS AGE SEX;do
IFS=
while read line;do
eval echo \"$line\"
done<${TEMPLATE}
IFS=${BUFIFS}
done
テンプレート template_yaml.txt
${NAME}:
AGE: ${AGE}
ADDRESS: ${ADDRESS}
SEX: ${SEX}
埋め込みたいリスト list
TARO TOKYO 1 MALE
JIRO CHIBA 2 MALE
HANAKO SAITAMA 3 FEMALE
SAKURA KANAGAWA 4 FEMALE
ICHITARO YAMANASHI 5 MALE
SANSHIRO TOCHIGI 6 MALE
YOKO GUNMA 7 FEMALE
実行例
$ sh template.sh list
TARO:
AGE: 1
ADDRESS: TOKYO
SEX: MALE
JIRO:
AGE: 2
ADDRESS: CHIBA
SEX: MALE
HANAKO:
AGE: 3
ADDRESS: SAITAMA
SEX: FEMALE
SAKURA:
AGE: 4
ADDRESS: KANAGAWA
SEX: FEMALE
ICHITARO:
AGE: 5
ADDRESS: YAMANASHI
SEX: MALE
SANSHIRO:
AGE: 6
ADDRESS: TOCHIGI
SEX: MALE
YOKO:
AGE: 7
ADDRESS: GUNMA
SEX: FEMALE
![]() | 入門UNIXシェルプログラミング―シェルの基礎から学ぶUNIXの世界 ブルース ブリン Bruce Blinn ソフトバンククリエイティブ 2003-02 売り上げランキング : 56869 Amazonで詳しく見る by G-Tools |
コメント